加载xlsx包时出错。

3
昨天我们公司迁移到了Windows 7,并更新了Java包和R(到2.14版本)。
然后我尝试加载xlsx包,因为我非常依赖它,但是出现了以下错误:
Error : .onAttach in attachNamespace()
Error: .jnew("org/apache/poi/xssf/usermodel/XSSFWorkbook")

我尝试了以下方法,但它并没有起作用:
Sys.setenv(PATH=paste(Sys.getenv("PATH"),"C:\\Program Files (x86)\\Java\\jre6\\bin\\client",collapse=';')) 
options(java.parameters = "-Xmx1000m")

由于我从未使用过Java,对我来说无从下手。你能帮帮我吗?

谢谢!

sessionInfo() R版本2.14.1 (2011-12-22) 平台:i386-pc-mingw32/i386 (32位)

locale: [1] LC_COLLATE=German_Austria.1252 LC_CTYPE=German_Austria.1252
[3] LC_MONETARY=German_Austria.1252 LC_NUMERIC=C
[5] LC_TIME=German_Austria.1252

附加的基本包: [1] stats graphics grDevices utils datasets methods base

其他已安装的软件包: [1] xlsxjars_0.4.0 rJava_0.9-3

通过一个命名空间(而不是附加)加载: [1] tools_2.14.1 xlsx_0.4.2


有趣的是,XLConnect包可以顺利加载。编辑:好吧,它可以无问题地加载,但加载工作簿却不起作用:

Error: NoSuchMethodError (Java): org.apache.xmlbeans.XmlOptions.setSaveAggressiveNamespaces()Lorg/apache/xmlbeans/XmlOptions;

也许这并不是Java的问题。但我不想重新编写所有的代码到XLConnect!有没有人有什么想法可以尝试?

尝试仅加载rJava包。您的R是32位还是64位?我曾经遇到过类似的问题,那是因为我只安装了32位的Java,而不是64位(您需要手动安装)。 - Mikko
加载rJava成功!我使用32位的R,因为我需要建立一个只能在32位下工作的ODBC连接。 - rainer
好的,那么这可能不是Java错误。 - Mikko
我已经设置了路径变量,但仍然无法工作。顺便说一下,我的Windows 7是64位版本。 - rainer
xlsx在我的Windows 7上的32位和64位R 2.15.0中都可以加载。您能否尝试安装R 2.15.0? - jthetzel
不,我没有管理员权限!而且我也不知道我的IT部门是否有时间更新我的R。 - rainer
1个回答

4
我遇到了完全相同的错误并找到了一个解决方法。如果您指定一个网络上的库位置来安装软件包,则会出现错误。
## Example where error occurs: 
install.packages('xlsx', lib='\\network\R\library')
library('xlsx', lib='\\network\R\library'))

然而,如果您更改了R中软件包安装的默认位置,则应该能够调用软件包库而不出错。也就是说,只需键入install.packages('xlsx'),并自动将软件包安装到其默认位置,就可以使软件包正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接