POI導出Excel的三種 workbook的區別


三種workbook分別是HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook

 

第一種:HSSFWorkbook

針對EXCEL 2003版本,擴展名為.xls,此種的局限就是導出的行數最多為65535行。因為導出行數受限,不足7萬行,所以一般不會發送內存溢出(OOM)的情況

 

第二種:XSSFWorkbook

這種形式的出現是由於第一種HSSF的局限性產生的,因為其導出行數較少,XSSFWorkbook應運而生,其對應的是EXCEL2007+ ,擴展名為.xlsx ,最多可以導出104萬行,不過這樣就伴隨着一個問題–OOM內存溢出。因為使用XSSFWorkbook創建的book sheet row cell 等是存在內存中的,並沒有持久化到磁盤上,那么隨着數據量的增大,內存的需求量也就增大。那么很有可能出現 OOM了,那么怎么解決呢?

 

第三種:SXSSFWorkbook  poi.jar 3.8+

SXSSFWorkbook可以根據行數將內存中的數據持久化寫到文件中。

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

 

學習POI移步至https://www.yiibai.com/apache_poi/apache_poi_core_classes.html

 

 

參考地址
https://blog.csdn.net/qq_29631809/article/details/72785338


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM