1. 程式人生 > >Excel大資料量匯出

Excel大資料量匯出

  • 問題

在進行匯出Excel的時候,由於資料量十分大,導致流不能很快的寫入到Excel檔案,使得流一直在記憶體中,導致記憶體佔用4個多G,嚴重影響服務狀態。

  • 方案

找到問題點是因為流或者Excel的資料結構(如XSSFWorkbook等)在記憶體停留時間太長。所以要麼快速處理資料,要麼就是將儲存位置改變。

  • 結果

最後我們發現其實Excel已經提供了SXSSFWorkbook。他和XSSFWorkbook的優化點就在於他會將多餘的資料儲存在硬碟。

SXSSFWorkbook wb = new SXSSFWorkbook();

當例項化SXSSFWorkbook的時候,預設是當資料量大於100的時候,多餘的資料將不會儲存在記憶體中,他會儲存到硬碟中。

  • 最後

果然,JVM記憶體果然就佔用比較少,同時處理速度和使用XSSFWorkbook的時候簡直就是天和地!