1. 程式人生 > >POI操作大資料量Excel時,new SXSSFWorkbook(1000)例項化失敗問題解決

POI操作大資料量Excel時,new SXSSFWorkbook(1000)例項化失敗問題解決

專案上使用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的實現,請看我之前的一篇博文(程式碼註釋詳細工整,並附有原始碼下載):

基於Apache POI匯出大資料量Excel的實現