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工作簿。