读取 Excel:无法打开 zip 文件 '..file.xlsx' 的评估错误

Reading Excel: evaluation error with zip file '..file.xlsx' cannot be opened

我在 readxl 包中使用 R。我尝试使用以下命令导入 Excel 文件:

library(readxl)
city_codes <- read_excel("./data/file.xlsx", sheet = "city_codes")

说是zip文件,打不开:

Error in sheets_fun(path) : 
Evaluation error: zip file './data/file.xlsx' cannot be opened.

有什么想法吗?

错误消息是 readxl 的有趣说法 "file not found"。确切的代码行给了我完全相同的错误,并且该文件对我来说甚至不存在。

注意:我使用的是readxl

的1.0.0版本

如果您在使用 read_excel 函数之前忘记执行以下操作,就会发生这种情况

setwd("C:\map\map_in_map\map_in_map_in_map_where_the_file_is")

您可以尝试指定完整路径而不是 ./path/to/file

您可以指定文件的路径,仅当它嵌套在工作目录中时。 例如:如果您的工作目录是 MyWD,其中有一个名为 MyData 的文件夹,MyData 中的另一个文件夹名为 MyNestedData,最后是 myExcelFile.xlsx

read_excel("MyData/MyNestedData/myExcelFile.xlsx",sheet = "Sheet2") #will work
read_excel("MyWD/MyData/MyNestedData/myExcelFile.xlsx",sheet = "Sheet2") #will not work

我遇到了这个错误,但对我来说,这只是我在 Excel 中打开了 sheet,同时试图将其读入 R。我猜包错误地将其视为当 Excel 拥有它的部分所有权(这会阻止读取)时尝试读取 zip 文件。

如果您的 excel 工作表受密码保护,read_excel 将无法访问它并给您这个错误。 如果它需要保护,我会建议 p/w 保护它所在的文件夹,然后取消保护工作表。

如果您在公司的计算机上工作,请尝试更改文件限制。这对我来说解决了这个问题。

尝试创建一个新文件。单击 "save as" 并创建一个新名称。 运行 再次输入您的代码。它对我很有效:)

如果您使用了错误的读取功能,您也可能会遇到此错误。

例如,read_xlsx("file.xls" ...) 将抛出错误。

虽然已经给出了解决方案,但是为了便于记录,我将把我的情况留在这里:

我 运行 遇到了同样的问题,但不知道为什么。似乎我的 excel 文件因错误或类似问题而关闭。我不得不打开 excel 文件,然后再次保存。当我 运行 R 时,一切都很顺利。

对我来说,当 excel 电子表格仍在 MSExcel 中打开时,也会出现“评估错误:zip 文件”错误消息。

问题是我的工作目录中有隐藏文件。我将它们复制到外部并排除所有目录。现在当我 运行 代码时它可以工作了。

在我的例子中,xlsx 是使用 Excel 2007 创建的,这导致了这个问题。来自较新 Excel 版本的 Xlsx 文件有效。

在我的例子中,尽管我已经删除了文件,但该文件在目录中不可见。我不得不使用名为“Everyting”的软件搜索该文件并将其删除。之后就成功了。

对我来说,我正在从 Google 驱动器下载一个文件到扩展名为 .xlsx 的临时文件中...意识到 Google 驱动器中的文件是 .xls,所以我将其更改为有效。不过有点罕见。