excel导出经验

excel导出经验,供参考

数据量:1万以下

直接导出,正常在5秒内

数据量:1万-10万

直接导出,正常在10秒内

数据量:超过10万,建议多文件导出。

可使用多线程查询,比如一个线程查1万数据,gzip压缩,设置响应头告诉浏览器用gzip解压
同时也可以用CVS代替POI导出,节省存储空间
搞的好点,应该也在20秒内

数据量:超过100万,建议异步导出。

新建一个异步导出任务表,每新发起一次导出,就先插入一条记录,状态是正在导出
然后后台开始异步执行,最终把生成的文件存在服务器或文件服务器上,然后将url存在记录中,同时记录状态改为已完成导出
然后前端引导用户去指定页面下载文件。

注意:

1、不同的系统,针对不同的用户,可能对用户体验的要求不一样,但一般人在导出数据的时候,超过5秒都不想等了,所以,如果因为数据量太大导致导出总时间超过5秒,就应该考虑异步导出了。

2、导出的查询,最好是一次性查出来所有数据,避免查出来再组装数据的情况。
比如要导出人员,但人员表中只有部门code,最好是一次性用一个sql查出来,而不要先查出所有的人员,然后再给每个人员填充部门信息。

3、excel 2019最大行数1048576,即2的20次方
国外一哥们为了测量excel最大行数,花了9个多小时
所以理论上一次导出的一个文件,不超过这个行数,都是没问题的

4、java导出excel,前几年用POI的多点,后来都用EasyExcel了,可以理解为POI的升级版,作者是阿里巴巴的一个同学。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值