excel的单个sheet目前看到的版本最多容纳100万左右,导出的数据量如果超过这个值,就会打开excel报错,或者导出excel报错,需要指定多个sheet来容纳数据。
示例代码主要两部分,如下:
//设置头部
@Data
public class PackDateDTO {
@ExcelProperty("sn")
private String sn;
@ExcelProperty("订单号")
private String wo;
@ExcelProperty("物料编码")
private String materialCode;
@ExcelProperty("物料描述")
private String materialCnDesc;
@ExcelProperty("投产时间")
private String startTime;
@ExcelProperty("完工时间")
private String finishedTime;
}
//导出excel
public void exportPackByDate(@RequestBody Map<String, Object> params){
List<List<PackDateDTO>> datas = Lists.partition(data, 500_000);
String fileName = "/home/trnuser/" + "export_pack" + System.currentTimeMillis() + ".xlsx";
ExcelWriter excelWriter = null;
try{
excelWriter = EasyExcel.write(fileName, PackDateDTO.class).build();
//创建一个sheet
WriteSheet writeSheet = EasyExcel.writerSheet(0, "模板1").build();
excelWriter.write(datas.get(0), writeSheet);
//创建一个新的sheet
writeSheet = EasyExcel.writerSheet(1, "模板2").build();
excelWriter.write(datas.get(1), writeSheet);
}finally {
//关闭流
if(excelWriter != null){
excelWriter.finish();
}
}
}