我使用Apache POI HSSF API for Java生成一个长的报告作为XLS文件。问题是日期非常大,我的记忆在调用wb.write(out);
之前失败了。所以我想知道是否有某种方式直接或定期存储XLS报告的信息。
答案 0 :(得分:2)
您可以尝试使用最新版本的POI 3.8 beta并查看SXSSF模型,我知道他们正在尝试从xlsx读入时帮助使用内存,但我不确定它是如何工作的写出来。 Might be worth a look though.
除此之外,我认为你唯一的选择就是使用-Xmx为你的JVM增加堆空间。
我希望这有帮助!
答案 1 :(得分:0)
您需要关闭工作簿对象..确保其超出范围&再次重新打开文档..关闭文档后调用System.gc()
可能会有所帮助。
最好增加分配给java的max memory (heap space)以获得更好的结果。