如何加载 500 MB excel POI 工作簿并从中删除工作表,没有内存问题



尝试将 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开始。

最新更新