POI導出Excel的三種 workbook 的發展與區別

最近寫了很多導出功能 數量有多又少,下面說一說POI 的一些使用 方法:

創建流程:(上級爲 下級的載體)

1:.創建 工作簿

2.創建 sheet(可以創建多個)

3.創建行

4.創建單元格

接下來 分別說下 工作簿的常用三種形式的區別,他們分別是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook


第一種:HSSFWorkbook 

針對是 EXCEL2003 版本,擴展名爲 .xls;所以 此種的侷限就是 導出的行數 至多爲 65535 行,此種 因爲行數不足七萬行 所以 一般不會發生 內存不足的情況(OOM)


第二種:XSSFWorkbook 

這種形式的出現 是由於 第一種HSSFWorkbook 的侷限性而產生的,因爲其所導出的行數比較少,所以 XSSFWookbook應運而生 其 對應的是EXCEL2007+(1048576行,16384列)擴展名 .xlsx,最多可以 導出 104 萬行,不過 這樣 就伴隨着一個問題---OOM 內存溢出,原因是 你所 創建的 book sheet row cell 等 此時是存在 內存的 並沒有 持久化,那麼 隨着 數據量增大  內存的需求量也就增大,那麼很大可能就是要 OOM了,那麼 怎麼解決呢?


第三種:SXSSFWorkbook  poi.jar 3.8+

第二種遇到的問題該如何解決呢? 因爲數據量過大 導致內存吃不消 那麼 可以 讓內存 到量持久化 嗎? 

答案是 肯定的,

此種的情況 就是 設置 最大 內存條數 比如  設置 最大內存量爲5000 rows  --new SXSSFWookbook(5000),此時 當 行數 達到 5000 時,把 內存 持久化 寫到 文件中,以此 逐步 寫入  避免OOM,那麼這樣 就完美解決了 大數據下 導出 的問題;


之前 寫過 一個導出的文章URL:http://blog.csdn.net/qq_29631809/article/details/72301805


發佈了64 篇原創文章 · 獲贊 61 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章