java使用jxl操作一百万数据到excel中,分sheet写入(一个sheet写五万)。如何避免内存溢出?
推荐于2016-11-23
下一个sheet,重新打开文档,并重复上面一步。
反复重复上面两步,直到你的数据写入完为止。
能不能具体点,或者给个事例
有倒是有实例,不过涉及太多业务处理,不合适直接给。
大概流程吧。
查询数据库:
queryData(int startIndex){
ResultSet rs = ......;//查询1000行数据
writeData(rs, startIndex/1000);//写数据
queryData(startIndex+1000);//继续查询并写数据
}
2.写数据:
writeData(ResultSet rs, int sheetIndex){
WritableWorkbook workbook = null;
try {
// 创建新的Excel
workbook = Workbook.createWorkbook(.....);
WritableSheet wsheet = workbook.createSheet("sheetname"+sheetIndex, 0);
while(rs.next()){
//遍历rs每行写入数据
}
rs.close();
workbook.write(); // 写入文件
workbook.close();
System.gc();//主动回收内存
} catch (xception ex2) {
System.out.println("Exception:" + ex2.getMessage());
}
}
如何清除?
好像是的,谢谢回答!
是分页写入,但是要求必须写入一个excel中,这样就必须分sheet写入。在追加的过程中我是创建副本添加,当数据量过大时就会造成内存溢出?
广告 您可能关注的内容 |