第一種: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就會寫入到磁盤中,減少內存的使用量來提高速度和避免溢出。