excel的導入導出
Excel有以下幾種
- 異步下載!異步!異步!異步!
- 如果對樣式沒什麼要求,也不用公式的話,強烈推薦導出CSV格式
- 可以採用多線程的方式,先查總數,然後分一下看需要多少個線程,每個線程讀取一部數據並寫入單獨Excel文件;當然,也可以多線程讀,單線程寫
- 分批導,這一點跟上一步類似
關於導Excel的組件,大概有4種:
- CSV :導出文件的速度很快
- POI:POI支持excel2003和2007,而jxl只支持excel2003。
- JXLS:JXLS用模板的方式也很方便,可以預先定義好樣式格式
- EasyPoi:easypoi是在poi基礎上做了封裝,使用註解就能輕鬆完成導出。
Apache POI
<!-- Excel 導入導出-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>
</dependency>
Apache的POI提供API給java程序進行OFFICE的讀寫,這種方式優點明顯。結構非常清晰,逐層創建即可。
1、創建excel文檔:通過創建XSSFWorkbook,以及sheet、row、cell,並對cell進行內容填充及格式設置。關於這部分處理,參考有個牛人的詳細文章:http://www.cnblogs.com/huajiezh/p/5467821.html。
2、獲取輸出流
3、將創建好的workbook寫入到輸出流中。
2、HSSFWorkbook導出條數上限(<=2003版)是65535行、256列 (xsl格式)
3、XSSFWorkbook 導出數據上限(>=2007版) 是1048576行,16384列 xslx格式
- 海量數據的操作:
大數據量的導出
對於大數據量的導出通常採用分而治之的思想,將大數據量分批次的導出到多個Excel文件或者單個Excel文件的多個sheet,也可導出到多個Excel文件後合併從單獨的文件,其實現方式可參考:https://github.com/chunericli/xpt-excel-extension。
總結:大數據量的處理需要注意對內存使用的影響和對業務的影響。除非必要,要不然最好使用異步的方式進行處理,即首先保存文件元數據信息,然後分批次保存數據和分批次讀取數據。
EasyPoi導入導出excel
https://blog.csdn.net/lijinzhou2017/article/details/83108550