POI 如何快速导出千万级数据的 Excel

2021 年 8 月 11 日
 Kimen

在使用 POI 导出一千万行数据到 Excel 时,CPU 长时间爆炸💥
现在的解决方案是:

现已探明的问题:
一千万的数据在创建 Excel 前都存储在 list 中,当 list 占用内存很小时,导出很快,一旦 list 变得很大,分段导出都会变的很慢

6716 次点击
所在节点    Java
53 条回复
kg2019
2021 年 8 月 12 日
easyExce 了解一下
levon
2021 年 8 月 12 日
分文件吧,存在一个 excel 里干吗用
jack778
2021 年 8 月 12 日
那么大弄成一个文件怎么操作呢,客户的电脑配置有多牛呢
Hallelu
2021 年 8 月 12 日
之前跟一个客户做 excel 导出的功能,他说数据多,直接给他声明,单个 excel 超过一百万,不做....
est
2021 年 8 月 12 日
.csv 斥候
dayeye2006199
2021 年 8 月 12 日
建议走 tsv + 份文件 + 压缩的路线吧。
excel 虽然很牛。。但也不是万能的。
Vegetable
2021 年 8 月 12 日
实际上,这个性能瓶颈时 Excel 本身带来的,Excel 天生不适合大规模数据,导出到 Excel 是一个非常耗时的操作。建议不要分 Sheet,而是分工作簿。
rockddd
2021 年 8 月 12 日
easyexcel 导出 List<Map<String, Object>> 这种格式的 我昨天刚写完
wxy1991
2021 年 8 月 12 日
除了 easyexcel 还有个 eec,不用依赖 poi,效率比 easyexcel 还要高,不过你这很明显需求不合理,1000w 的 excel 我就不信有电脑能打开,我的破电脑打开个 500m 的 word 感觉就要卡死了
someonedeng
2021 年 8 月 12 日
真给他导出了,他怎么打开? 能不能分成多个 excel 文件再打包 zip ?
beginor
2021 年 8 月 13 日
软件工程师,多动脑子,不是程序猿。
dcncy
2021 年 8 月 13 日
之前做过一个 700w+的数据导出,每一行 40 多列。
使用的是 easyExcel 导的,分多个 excel,多个 sheet,多线程跑效率能快点。
janda
2021 年 8 月 13 日

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/795136

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX