Как загрузить файл xlsx в R из iCloud - PullRequest
1 голос
/ 07 августа 2020

Здравствуйте и спасибо за ваше время. Я пытаюсь импортировать файл xlsx из iCloud, но ничего не работает. Использование

download.file(url = origin_url
              ,destfile = "/path/to/the/File.xlsx"
              ,mode = "wb")

Создает File.xlsx, но его размер составляет 45 КБ от исходных 210 КБ. origin_url - это полный путь к каталогу iCloud (ссылка для совместного использования с полными разрешениями) + имя исходного файла.

origin_url <- paste("https://www.icloud.com/iclouddrive/03Etcetera4Q#Genial-IO", "/o_File.xlsx",sep="")

В результате консоль выдаст:

пробандо ля URL ... // www.icloud.com/iclouddrive/03Etcetera4Q#Genial -IO / o_File.xlsx Тип содержимого 'text / html' длиной 46562 байта (45 КБ) ===== скачано 45 КБ

Подозревая из файла (это настоящий файл xlsx?) Я переместил его в папку диска Google, сделал следующее и работал как шарм:

googledrive::drive_auth(email = "associated_drive_account@gmail.com")

d1 <- drive_find(pattern = "o_File.xlsx",type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",verbose = TRUE)

meta <- drive_get(id = d1$id)[["drive_resource"]]

n_id <- paste("https://drive.google.com/open?id=",d1$id,sep = "")

meta_name <- paste("/path/to/the/",meta[[1]]$originalFilename,sep = "")

drive_download(file = as_id(n_id),overwrite = TRUE, path = meta_name)
# downloaded file 210KB <--- OK!!
rm(n_id,d1)

#reading 4 worksheets
data <- map(1:4,function(j){
read_excel(meta_name,col_names = TRUE,sheet = j,skip = ifelse(j == 4,0,1))})

Итак ... файл в порядке. Я очень запуталась. Иногда при попытке импортировать csv или другие файлы разными способами мне приходилось менять символ в конце общей ссылки с 0 на 1.

Примечание: я использовал библиотеки readxl и xlsx. (GDrive = Ok, iCloud = NOk)

Я глубоко признателен за вашу помощь

...