xlsx файл, загруженный с помощью download. файл не открывается - PullRequest
1 голос
/ 21 июня 2020

Я пытаюсь загрузить файл xlsx с помощью download.file (файл находится по ссылке Teams), и пока он работает и что-то загружает, когда я пытаюсь посмотреть файл (в R или просто дважды щелкнув значок файл в windows проводнике) он не работает.

Затем я протестировал его по ссылке Dropbox и тоже не прошел (код ниже). Не уверен, почему, но я пробовал без явного режима и с mode = "wb".

Пример кода:

download.file(
    url = "https://www.dropbox.com/s/9bumheqlbpxygnl/testfile.xlsx?dl=0", 
    destfile = "test.xlsx",
    mode="wb"
)   

Ошибка Я получаю чтение загруженного файла:

> readxl::read_xlsx("test.xlsx")
Error: Evaluation error: zip file 'C:\Users\tam2\Dropbox\Trabalho\CEAUL\COVID19\Projetos\COVIDETECT\dados\test.xlsx' cannot be opened.

Может кто-нибудь помочь мне понять, что может происходить? Я видел здесь, в StackOverflow, что другие решили свою проблему, используя mode="wb", но здесь это не влияет (не работает ни в одном из режимов).

По указанной выше ссылке есть файл для тестирования, если вы хотите использовать это. Большое спасибо

Я также попробовал вариант, который нашел здесь

Ошибка при загрузке и чтении файла Excel по URL-адресу в R

на основе

library(httr)
GET("https://www.dropbox.com/s/9bumheqlbpxygnl/testfile.xlsx?dl=0", write_disk(tf <- tempfile(fileext = ".xls")))
data <- read_excel(tf)

но снова ударился о каменную стену

Error: 
  filepath: C:\Users\tam2\AppData\Local\Temp\RtmpCA2uEa\file31802e134f09.xls
  libxls error: Unable to open file
R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

1 Ответ

0 голосов
/ 21 июня 2020

Оба комментария к вопросу решают проблему на моем p c.

url <- "https://www.dropbox.com/s/9bumheqlbpxygnl/testfile.xlsx?dl=1"
fn <- tempfile(fileext=".xlsx")
download.file(url, destfile=fn, mode="wb")
library(readxl)
dat <- read_excel(fn)
str(dat)

Обратите внимание, что URL-адрес изменен на dl=1 и что полный путь предоставляется к download.file и read_excel. Кажется, что download.file по умолчанию записывает в папку ~/Downloads, по крайней мере, здесь, на моем windows p c.

Другой подход тоже работает:

library(httr)
GET(url, write_disk(fn, overwrite=TRUE))
dat <- read_excel(fn)

Обратите внимание, что data также является базовой функцией R, поэтому не рекомендуется называть переменную таким именем.

...