taList.size() % sizeLimit > 0 ? 1 : 0);
// 输出流
OutputStream outputStream = null;
try {
// 以字节流的形式输出响应正文
outputStream = new FileOutputStream(outFilePath);
try (ExcelWriter excelWriter = EasyExcel.write(outputStream, bean).build()) {
// 中间list调用写入
List<?> partList = null;
WriteSheet writeSheet =null;
for (int i = 0; i < num; i++) {
// 每次写入都要创建WriteSheet, 这里注意必须指定sheetNo, 并且sheetName必须不一样
writeSheet = EasyExcel.writerSheet(i, sheetName + (i + 1)).build();
// 截取批次长度的list
partList = sizeLimitDataList.subList(0, sizeLimit);
// 分批业务逻辑处理- 打印替代
excelWriter.write(partList, writeSheet);
// 去除已经处理的部分 (Arrays.asList()方式生成的数据不能进行此修改操作,会报错)
partList.clear();
}
// 获取最后一次截取后的剩余列表数据
if (!sizeLimitDataList.isEmpty()) {
// 业务逻辑数据处理
excelWriter.write(sizeLimitDataList, writeSheet);
}
}
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}
public static void main (String[]args){
WriteDataBean writeDataBean = new WriteDataBean();
writeDataBean.setA("a");
writeDataBean.setB("b");
WriteDataBean writeDataBean1 = new WriteDataBean();
writeDataBean1.setA("ad");
writeDataBean1.setB("bd");
objects.add(writeDataBean1);
objects.add(writeDataBean);
writeMaxDataExcel(WriteDataBean.class, "D://cdc.xlsx", "test", objects, 1);
writeMinDataExcel(WriteDataBean.class, "D://cddc.xlsx", "test", objects);
}
}
|