大数据量导出Excel的方案总结

大数据量导出Excel可以采用POI、JXL等等开源框架。目前,在项目中采用的是POI。

 

客户要求导出5w条数据,考虑到并发,这对于系统内存是个挑战,系统使用tomcat,据说tomcat的jvm内存只能升级为2g有待考证。

 

在网上google了半天,将结果总结如下:

 

1、可以采用分批导出,从IBatis取出数据后,List分为几个subList,或者直接分页多次查出集合,然后传入excel接口。

 

(1)如果只为一个sheet页,需要记录结束行,关闭流,保存文件后,会使jvm可以回收某些内存(只是可以回收,而非立刻回收)。然后再重新打开该文件导入数据。

(2)也可以导出多个sheet页,道理同上。

(3)也可以导出多个文件,道理同上,促使jvm可以回收部分poi创建的对象。

 

2、采用CSV

如果采用csv只是文本文件,对内存消耗较低。

你可能感兴趣的:(报表)