java大概1000W数据导出成excel有什么好的建议。(最好是插件,POI、JXL、FastExcel已试过,数据量太大,不

2024-11-01 12:26:24
推荐回答(4个)
回答1:

使用POI或JXL的话,数据是一次性读入内存,封装成对象,再一次性导出的。这么大的数据量都有G级了吧,如果是一次性作业的话,内存很难受。
考虑分批,追加写入的方式,对于简单的字节字符流文件是可取的。然而写成excel这种结构化的文件格式应该是没办法胜任了,追加写入时往往需要事先获知文件的结构信息,然后找到相应的位置进行插入,而这个过程也是复杂的(这也是POI、JXL出现的原因)。
因此,建议你输出为多个excel文件吧。

PS:不知道这么大的数据为何还要输出成Excel文件,Excel文件本来就是给人看的,相信你的数据一定不是给人看的,而是作为存储载体而已,那么使用更加简洁的方式不是更好?使用简单的文本文件进行存储(还可实现追加);使用库表作为载体则更优

回答2:

Excel本身就不支持这么多数据,一个sheet也就容65535行数据,一个workbook最多256个sheet,
同时还要求JVM的内存够大

回答3:

是的,excel是有60000行的限制。如果你能够正确的导出excel,说明你已经掌握了excel的操作。我提供一种思路供你参考:判断你要导出数据的行数,以6万为基数,进行程序判断。可以通过循环的方式,计算出需要的sheet数量,每次循环建立一个sheet,然后把数据导入。关键的问题在于创建新的sheet和,计算导出的数据。希望对你有所帮助吧。

回答4:

此需求可以放弃,转换业务思路,找到问题的根源,从业务上解决问题