項目上使用POI導出資料庫大資料量為Excel時,發現代碼運作時 執行個體化工作簿 失敗!
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
trycatch問題代碼後,在debug中也并未進入異常處理,而是直接進入了finally
最後發現問題所在:缺少SXSSF所依賴的操作xml的相關jar包!
Apache POI操作Excel對象
1:HSSF:操作Excel 2007之前版本(.xls)格式,xls格式的excel(最大行數65536行,最大列數256列)
2:XSSF:操作Excel 2007及之後版本(.xlsx)格式,.xlsx格式的excel(最大行數1048576行,最大列數16384列)
3:SXSSF:從POI3.8 beta3開始支援,基于XSSF,當資料量過大導緻記憶體占用大于執行個體化時設定的初始值時,會将資料持久化到硬碟,進而避免出現記憶體溢出問題。
使用SXSSF實作大資料量的excel導出,導出的檔案為.xlsx格式(2007)的excel,而.xlsx是用新的基于XML的壓縮檔案格式取代了原.xls(2003)專有的預設檔案格式,使其占用空間更小,可以向下相容xls。
是以,不光要導入poi的SXSSF相關的jar包,而且還要導入SXSSF所依賴的操作xml的jar包!
1:poi-3.10-FINAL-20140208.jar
2:poi-ooxml-3.10-FINAL-20140208.jar
3:poi-ooxml-schemas-3.10-FINAL-20140208.jar
4:dom4j-1.6.1.jar
5:xmlbeans-2.3.0.jar
關于使用POI導出大資料量Excel的實作,請看我之前的一篇博文(代碼注釋詳細工整,并附有源碼下載下傳):