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