POI之前的版本不支持大数据量处理 如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好。3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。
3.8版本的POI对excel的导出操作,一般只使用HSSFWorkbook以及SXSSFWorkbook,HSSFWorkbook用来处理较少的数据量,SXSSFWorkbook用来处理大数据量以及超大数据量的导出。
HSSFWorkbook的使用方法和之前的版本的使用方法一致,这里就不在陈述使用方法了
SXSSFWorkbook的使用例子如下:
public static void downExcel(String pathUrl) throws Exception{
File f = new File(pathUrl);
FileOutputStream out = new FileOutputStream(f);
Workbook workbook = new SXSSFWorkbook();
Sheet sheet = workbook.createSheet("第一页");
for (int i =0;i<1000;i++){
Row row = sheet.createRow(i);
Cell cell0 = row.createCell(0);
cell0.setCellValue("小时候可牛了"+i);
Cell cell1 = row.createCell(1);
cell1.setCellValue("小时候可帅了"+i);
Cell cell2 = row.createCell(2);
cell2.setCellValue("小时候可牛了"+i);
Cell cell4 = row.createCell(3);
cell4.setCellValue("小时候可牛了"+i);
Cell cell5 = row.createCell(4);
cell5.setCellValue("小时候可牛了"+i);
Cell cell6 = row.createCell(5);
cell6.setCellValue("小时候可牛了"+i);
Cell cell7 = row.createCell(6);
cell7.setCellValue("小时候可牛了"+i);
}
workbook.write(out);
out.flush();
out.close();
workbook.close();
}