XLConnect loadWorkbook错误 – POIXMLException(Java)

我试图加载一个庞大的Excel工作簿(.xlsm格式,〜30 MB),有大量的数组计算。

> wb1 <- loadWorkbook("Mar_SP_20130227_V6.1.xlsm") Error: POIXMLException (Java): java.lang.reflect.InvocationTargetException 

但是,我能够成功加载工作簿的仅值/无macros版本。

 > wb2 <- loadWorkbook("Mar_SP_20130227_V6.1_VALUES_ONLY.xlsx") > wb2 [1] "Mar_SP_20130227_V6.1_VALUES_ONLY.xlsx" 

什么可能导致错误?

从维护者的网站,我可以看到,可能会出现包含数组计算或不受支持的公式函数的工作簿的问题,但这看起来不是相同的错误。

Java信息:

 C:\> java -version java version "1.6.0_21" Java(TM) SE Runtime Environment (build 1.6.0_21-b07) Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode) 

事实certificate,这个错误的根源是内存不足的JVM(甚至带有options(java.parameters = "-Xmx1024m") )。

我试图增加内存,但不能让JVM占用超过-Xmx2048m ,这仍然不足以加载工作簿。

于是我把JRE从32位升级到了64位,并运行了64位R

然后我可以设置-Xmx4096m并成功加载我的30mb工作簿。