无法从R读取.xls
- 文件:它是一个约100行7列的文件。 XLS扩展(MS Excel 97-2003)。
- 问题:无法用R通过
read.xlsx
或read.xlsx2
读取文件。 -
用于尝试读取文件的代码:
library(xlsxjars) library(rJava) library(xlsx) excel <- read.xlsx("File.xls",sheetIndex=1,startRow=1,stringsAsFactor=F)
-
错误提示:
错误
.jcall ("RJavaTools","Ljava/lang/object;","invokeMethod",cl,
:java.lang.IllegalArgumentException:您的InputStream既不是OLE2stream,也不是OOXMLstream。
PD:为了logging,我试着用read.csv
来读取它, read.csv
它读取它,但是因为它是一个Excel文件,并且没有用逗号或点隔开,所以R读取它,好像所有东西都在1列中一样。 也许任何人都可以build议通过read.csv
读取它的read.csv
?
有两件事你说过,让我觉得你没有处理你认为你正在处理的文件types:
-
Your InputStream was neither an OLE2 stream, nor an OOXML stream"
-
“我确实试图用read.csv()读取它,它确实读取它…”
如果它确实是MS Excel 97-2003本机格式的文件,那么read.csv
根本就不能工作。 read.xlsx
的错误支持这个。 这似乎是一个文本文件,并且您在read.table
中使用sep="\t"
注释允许正确读取它来确认它。 你有什么是一个标签分离的文本文件,恰好有后缀.xls
。
应该指出的是,文件的后缀不能保证文件是声称的格式。 一个更好的指标是在其上运行file
shell命令(如果该命令在您的操作系统上可用)。 文件扩展名有时用于确定使用哪个应用程序来打开文件。 由于Excel能够读取制表符分隔的文件(因为Excel可能没有被设置为.tsv
文件的默认应用程序,这将是更传统的文件扩展名),所以使用.xls
扩展名,文件将一般)由Excel打开。
总之,仅仅因为文件名以.xls
结尾并不意味着它确实是一个Excel原生格式文件。