据说这种 SXSSF 本地物理内存用于存储。反正测试成功了。
select * from max_capacity_test limit 0,1000000
MaxExcelDao dao = new MaxExcelDao(); // XSSFWorkbook workbook = new XSSFWorkbook(); SXSSFWorkbook workbook = new SXSSFWorkbook(); // SXSSFWorkbook SXSSFSheet sheet = workbook.createSheet(); List<MaxExcel> list = dao.findAll(); try ( FileOutputStream out= new FileOutputStream("C:\\Users\\Administrator\\Desktop\\a.xlsx");){
for (int i = 0; i < list.size(); i ) {
MaxExcel excel = list.get(i); SXSSFRow row = sheet.createRow(i); row.createCell(0).setCellValue(excel.getMctId()); row.createCell(1).setCellValue(excel.getMctName());
row.createCell(2).setCellValue(excel.getmTime());
}
workbook.write(out);
}catch (Exception e){
e.printStackTrace();
}
java.lang.IllegalArgumentException: Invalid row number (1048576) outside allowable range (0..1048575)
at org.apache.poi.xssf.streaming.SXSSFSheet.createRow(SXSSFSheet.java:123)
at com.xtkj.svt.Demo.main(Demo.java:26)
//excel单个sell页只能到1048575行