最近在搞一個通用文件處理服務器,需要處理Excel文件,但是有的excel文件大小超過3M,讀取文件時直接導緻jvm異常:gc overhead limit exceeded。
原來poi讀取excel時有兩種模式,我們常用的是第一種,通俗點就是空間換時間/時間換空間:
常用的工具包有阿裡開源的easyExcel,easyPOI等,一兩行代碼搞定。但是第二種模式有個缺點是:無法讀取用戶當前打開的sheet(比如一個excel中有一個隐藏sheet,一個可見sheet,第一種模式可以使用getActiveSheetIndex()),隻能一個一個讀取sheet。
針對excel大量數據寫入,借助SXSSFWorkbook,再加上數據分頁處理,再加上數據記錄條數限制,可以避免内存異常。
使用緩存 臨時文件處理
不知有沒有高人有更好的解決方案?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!