首页 > 解决方案 > R read_excel:libxls错误:无法解析文件

问题描述

我正在尝试使用 readxl::read_excel 将 xls 文件读入 R,但它给出了以下错误:

Error: 
  filepath: //.../data.xls
  libxls error: Unable to parse file

还尝试了 readxl::excel_sheets(),但同样的错误。

还尝试重新安装 readxl 包,对我不起作用。

我目前的替代方法是使用 Excel 将此文件转换为“xlsx”,然后使用 readxl::read_excel 读取,但我想直接导入“xls”。

如何解决?

标签: rimportxls

解决方案


我经常遇到这个问题(完全相同的错误消息),这似乎与 .xls 文件的保存或导出方式有关。例如。在 excel 中,如果您检查工作表,它有时会出现警告。但是,当您有自动文件或需要由 R 打开的大量文件时,检查或重新保存是不切实际的。我有一些示例 .xls 文件无法被 readxl、openxlsx 库加载,无论如何我尝试的选项(例如,指定工作表,这通常可以解决加载 excel 工作表的问题)。我终于解决了这个问题,只需使用 XLConnect 包(请注意,它确实需要安装 Java)。您没有示例文件,我无法分享我正在处理的文件,但试试这个

install.packages('XLConnect')
library(XLConnect)
# to load sheet one of 'test.xls', and my sheet does not have a header
# method one, read workbook, followed by worksheet
f <- loadWorkbook('test.xls')
d <- readWorksheet(f, 1, header = F)
# method two, read sheet directly into your dataframe
d <- readWorksheetFromFile ('test.xls', 1, header = F)

推荐阅读