public static void Excel2007AboveOperate(String filePath) throws IOException {
XSSFWorkbook workbook1 = new XSSFWorkbook(new FileInputStream(new File(filePath)));
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook(workbook1, 100);
Sheet first = sxssfWorkbook.getSheetAt(0);
for (int i = 0; i < 100000; i++) {
Row row = first.createRow(i);
for (int j = 0; j < 11; j++) {
if(i == 0) {
// 首行
row.createCell(j).setCellValue("column" + j);
} else {
// 数据
if (j == 0) {
CellUtil.createCell(row, j, String.valueOf(i));
} else
CellUtil.createCell(row, j, String.valueOf(Math.random()));
}
}
}
FileOutputStream out = new FileOutputStream("workbook.xlsx");
sxssfWorkbook.write(out);
out.close();
}
原来,SXSSF实现了一套自动刷入数据的机制。当数据数量达到一定程度时(用户可以自己设置这个限制)。向文本中刷入部分数据。这样就缓解了程序运行时候的压力。达到高效的目的。