poi導出中三種workBook的使用分類


第一種:HSSFWorkbook 

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

 

第二種:XSSFWorkbook 

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

 

第三種:SXSSFWorkbook  poi.jar 3.8+

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

輸入的時候我查閱了poi的api發現一般是不能大批量數據輸入的,但是poi的2007支持大數據處理
Workbook wb = new SXSSFWorkbook(5000);
在生成Workbook 時給工作簿一個內存數據存在條數,這樣一旦這個Workbook 中數據量超過5000就會寫入到磁盤中,減少內存的使用量來提高速度和避免溢出。


免責聲明!

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



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