Java项目中使用POI导出百万条数据到Excel中,但是会出现内存溢出异常。存在以下问题需要考虑POI导出条数限制6w+数据量大的话会导致内存溢出现在的做法是每6w条数据做一次分割,创建一个新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);
}
}希望大家能给点建议,想个比较好的方案解决这个难题~~
1 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
速度没有太好的办法,内存的话,设置Java的启动参数-Xmx加大一些内存试试。
然后我的建议是如果能接受csv的话,输出csv吧,会快很多,连poi都不需要。
添加回答
举报
0/150
提交
取消