習慣使用NPOI套件來實現Excel匯出報表的效果
當然也有EPPlus等等的套件,但因EPPlus新版有商業用問題,故還是使用老牌NPOI套件
分享NPOI使用上的幾個問題
- 欄位寬度自適應AutoSizeColumn
- 記憶體未釋放
- 筆數大,匯出無法快
欄位寬度自適應AutoSizeColumn
因為中文關係,導致於匯出七萬筆左右的資料約需要兩分多鐘
改成SetColumnWidth針對每一行最大長度去做重新調整,僅需10秒

記憶體未釋放
使用XSSFWorkbook產出報表,當資料筆數大於千筆以上請考慮改用SXSSFWorkbook,否則會有記憶體占用,且未釋放問題
使用SXSSFWorkbook請注意會產生暫存檔存放資料
所以要呼叫該物件的Dispose(),才會清除暫存檔

筆數大,匯出無法快
七萬筆資料約需10秒,如果要大量匯出可以考慮產出CSV檔,匯出速度較佳
資料來源參考