我正在尝试使用xlsx包将excel工作表加载到R中。这些文件保存为旧的97-2003工作表(结尾为.XLS),对于较新的文件,下面的代码工作正常。
df <- read.xlsx(filename,sheetIndex=2)
但是,当我尝试使用旧文件时,我收到错误消息:
.jcall中的错误(“RJavaTools”,“Ljava / lang / Object;”,“invokeMethod”,cl,: org.apache.poi.hssf.OldExcelFormatException:提供的电子表格似乎是Excel 5.0 / 7.0(BIFF5)格式。 POI仅支持BIFF8格式(来自Excel版本97/2000 / XP / 2003)
我知道错误与旧格式的文件有关,但我不知道如何解决这个问题。我有太多文件来手动更新每个文件。 任何建议将不胜感激!
P.S。抱歉没有添加完全可重现的例子。我不知道如何附加文件以配合我的问题。
答案 0 :(得分:1)
包readxl
是读取Excel文件的一种方法。优点是不依赖于Java或其他。
您的代码将是
library(readxl)
df <- read_excel(path = filepath, sheet =2)
它应该与XLS和XLSX文件一起使用。
使用excel_sheets(filepath)
获取要导入的工作表的名称,并通过sheet
read_excel
arg传递它们。如果有帮助,你可以用它来循环。