尝试将 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 工作表?
只需使用更多内存启动 JVM。启动 JVM 时的 -Xms 和 -Xmx 参数是什么?
如果要加载 500MB 的文件,则 JVM 需要比 500MB 多得多的内存。例如,尝试从java -Xms2048m -Xmx4096m
开始。