|
|
原帖由 tencher 于 2007-1-25 11:43 发表 ![]()
File f = new File("c:/workbook.xls");
WritableWorkbook wb = Workbook.createWorkbook(f);
WritableSheet sheet = wb.createSheet("test, 0);
rs = "select * from table";//5w records
while(rs.next()) {
for (int j = 0; j < 32; j++) {
sheet.addCell(new Label(j,rowNum,rs.getString(j + 1)));
}
System.out.println(rowNum);
rowNum++;
if (rowNum % 2000 == 0)
{
wb.write();
}
}
wb.write();
wb.close();
----------------------------------------------------------------------------------
提醒一下楼主,在下用POI用的很好,我用的poi做的报表目前的大小有80M,也没有内存溢出。
如果数据很小的情况出现内存溢出的肯定是你的程序写的有问题。
参考一下读取顺序;
HSSFWorkbook workbook=new HSSFWorkbook(); //第一创建工作本
workbook.setSheetName(i,hashmap1.get("project").toString(),HSSFWorkbook.ENCODING_UTF_16);//第二创建sheet
while(rs.next()){
HSSFRow row = sheet.createRow((short) i); //i是行数
HSSFCell cell=row.createCell((short) (column)); // 创建cell单元格
/****
把对应的数值写入相应的单元格
比如:customer=rs.getString(column);
cell.setCellValue(customer.telephone);
*****/
}
workbook.write(os);
os.close();
------------------------------------------------ |
|