一次性导出20W条数据,POI、JXL都报内存溢出,有什么更好的办法吗?
我们项目遇到大数据,一直都是用流导出csv格式
不要用POI这些,只是导出数据结构简单的话换成文本输出csv用流式输出,Excel一样可以打开的。 不错~~~ 赞一个 我都没想到 民间自有高手阿 @逝水fox
1. 待处理的数据,不要一次性全部放到数据对象中,应该分批处理,以避免JVM内存使用的溢出;
2. Excel如果写入的内容过多,建议分开写到多个excel文件中,然后打成ZIP包提供下载。
楼上正解
程序问题吧,估计你用了啥样式,然后,还没公用,猜的。
excel一个表的行数最大貌似是65535 ,可以考虑文件里多搞几个表。
+1
不要用POI这些,只是导出数据结构简单的话换成文本输出csv用流式输出,Excel一样可以打开的。
POI什么的都是先在内存里面把Excel的结构构造好再输出的,这个过程很费内存。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
我们项目遇到大数据,一直都是用流导出csv格式
不要用POI这些,只是导出数据结构简单的话换成文本输出csv用流式输出,Excel一样可以打开的。 不错~~~ 赞一个 我都没想到 民间自有高手阿 @逝水fox
1. 待处理的数据,不要一次性全部放到数据对象中,应该分批处理,以避免JVM内存使用的溢出;
2. Excel如果写入的内容过多,建议分开写到多个excel文件中,然后打成ZIP包提供下载。
楼上正解
程序问题吧,估计你用了啥样式,然后,还没公用,猜的。
excel一个表的行数最大貌似是65535 ,可以考虑文件里多搞几个表。
+1
不要用POI这些,只是导出数据结构简单的话换成文本输出csv用流式输出,Excel一样可以打开的。
POI什么的都是先在内存里面把Excel的结构构造好再输出的,这个过程很费内存。