首页 文章

poi读取现有excel并使用大数据进行编辑

提问于
浏览
1

我使用apache poi来读取和写入excel . 我能够毫无问题地执行此操作 . 但是我在现有excel上编写大型Excel时面临内存问题 . 下面我将详细介绍列 Headers 为彩色的模板合并(我在一张纸上谈论100到150列)这个我大概有10张左右 . 现在我从数据库中读取数据并将数据填充到此excel中 . 现在我能够做的小数据集,但对于大型数据集,它会抛出内存 . 虽然我从数据库中获取数据,如1000行数据,然后获取1000并再次获得另一组数据 . Maxiumn数据行将是每张50,000行,而minumun行将是每张表中的一行

我读过有关SXSSF的内容,但问题是它不能在现有的Excel上进行编辑 .

请让我知道你如何解决这个问题的想法 .

1 回答

  • 1

    有几个选项,但没有一个是“银弹”简单的答案 . 不幸的是,Excel文件格式确实需要相当多的内存才能使用 .

    • 增加给Java的堆大小,这样它一次可以在内存中保存更多

    • 为服务器购买更多内存,然后增加堆大小 . 如今,记忆力非常便宜,并且不需要花费很多时间来支付成本的程序员

    • 使用不同的文件格式 - 例如,CSV在内存占用量上非常轻量级

    • 使用low level SAX API读入.xlsx文件,然后使用SXSSF再次将其写出而不需要太多缓冲 . 虽然需要相当多的自定义编码,但比使用HSSF / XSSF还要多得多

    • 贡献/赞助内存改进对Apache POI的贡献 . POI是开源的,免费提供,并且完全由志愿者维护,所以如果对你很重要,你通常最好帮忙!

相关问题