深圳seo网站推广方案,贵阳免费网站建设,wordpress服务器选择,昆明北京网站建设excel导出经验#xff0c;供参考
数据量#xff1a;1万以下
直接导出#xff0c;正常在5秒内
数据量#xff1a;1万-10万
直接导出#xff0c;正常在10秒内
数据量#xff1a;超过10万#xff0c;建议多文件导出。
可使用多线程查询#xff0c;比如一个线程查1万…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的升级版作者是阿里巴巴的一个同学。