當資料量超出65536條後,在使用HSSFWorkbook或XSSFWorkbook,程式會報OutOfMemoryError:Javaheap space異常
解決方法是:從POI 3.8版本開始,提供了一種基于XSSF的低記憶體占用的API----SXSSFWorkbook。
SXSSFWorkbook-官方解釋:實作“BigGridDemo”政策的流式XSSFWorkbook版本。這允許寫入非常大的檔案而不會耗盡記憶體,因為任何時候隻有可配置的行部分被儲存在記憶體中。您可以提供用作書面資料基礎的模闆工作簿。有關詳細資訊,請參見https://poi.apache.org/spreadsheet/how-to.html#sxssf。
例如:
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook();
SXSSFSheet sheet = sxssfWorkbook.createSheet("sheet1");
sheet.setDefaultColumnWidth(22);
SXSSFRow rootRow = sheet.createRow(0);
sxssfWorkbook.write(outputStream);
sxssfWorkbook.close();