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 params){

List> 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();

}

}

}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐