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的升級版,作者是阿里巴巴的一個同學。
總結
- 上一篇: idea插件开发(02)---相关概念介
- 下一篇: 实验四Java_《Java实验四》