Java項(xiàng)目中使用POI導(dǎo)出百萬條數(shù)據(jù)到Excel中,但是會(huì)出現(xiàn)內(nèi)存溢出異常。存在以下問題需要考慮POI導(dǎo)出條數(shù)限制6w+數(shù)據(jù)量大的話會(huì)導(dǎo)致內(nèi)存溢出現(xiàn)在的做法是每6w條數(shù)據(jù)做一次分割,創(chuàng)建一個(gè)新sheet去,但是這種做法特別慢 List<List<Object>> result = new ArrayList<List<Object>>();
List<Object> dataList = new ArrayList<Object>(); if (resultList != null) { for (int i = 0; i < resultList.size(); i++) {
Map<String, Object> map = getDataByClass(resultList.get(i));
dataList.add(map); if (dataList.size() % 60000 == 0 && dataList.size() != 0) {
result.add(dataList);
dataList = new ArrayList<Object>();
}
} if(dataList.size()!=0){
result.add(dataList);
}
}希望大家能給點(diǎn)建議,想個(gè)比較好的方案解決這個(gè)難題~~
如何實(shí)現(xiàn)導(dǎo)出百萬條數(shù)據(jù)到EXCEL中不報(bào)OOM異常?
炎炎設(shè)計(jì)
2018-09-23 19:53:59