试图将500 MB的.xlsm文件加载到内存中,然后从中删除特定的表。
OPCPackage pkg = OPCPackage.open("C:\\PROJECTS\\test.xlsm");
XSSFWorkbook wb = new XSSFWorkbook(pkg);
SXSSFWorkbook wb1 = new SXSSFWorkbook(wb, 100);
将pkg加载到工作簿时内存不足。
还有其他替代方法可以加载如此大的文件而不会出现内存问题吗?
我们还使用解析器概念对同一xlsm文件执行了另一个读取逻辑,即 org.apache.xerces.parsers.SAXParser
工作正常。是否有可能使用解析器概念来更改Excel工作表?
答案 0 :(得分:1)
只需使用更多内存启动JVM。 What are the -Xms and -Xmx parameters when starting JVM?
如果要加载500MB的文件,则需要比JVM的500MB多得多的内存。尝试从java -Xms2048m -Xmx4096m
开始。