在小编工作中,遇到上传导出,生成多个sheet页签的时候,当时小编觉得好难,但你写完之后,也就一行代码的事,
现在分享一下我当时做的心得:
单个sheet页和多个sheet页:如图
标头代码根据自己的需求设置:下图的代码和导出的结果相关
@Getter
@Setter
@EqualsAndHashCode
//头字体大小
@HeadFontStyle(fontHeightInPoints = 12)
//内容字体大小
@ContentFontStyle(fontHeightInPoints = 10)
public class Code {
//举个列子,根据自己的需求定义
@ExcelProperty("客户编号")
private String custId;
}
导出单个sheet页的代码;
EasyExcel.write(file, QcreditOutPutResp.class)//file文件,QcreditOutPutResp.class导出的字段
.excludeColumnFieldNames(excludeColumnFieldNames)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())//设置行距
.sheet("sheet名字").doWrite(List);//List导出的数据
导出多个sheet页的代码;
try (ExcelWriter excelWriter = EasyExcel.write(file).build();) {//file文件;
WriteSheet sheet = EasyExcel.writerSheet("关联方-法人").head(CorporationSuperviseResp.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
WriteSheet build = EasyExcel.writerSheet("关联方-自然人").head(RelativesSuperviseResp.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
WriteSheet writeSheet = EasyExcel.writerSheet("关联关系").head(SuperviseResp.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
excelWriter.write(List1, sheet);
excelWriter.write(List2, build);
excelWriter.write(List3, writeSheet);//List1,List2,List3是三个页签的数据
}
main方法链接如下,以方便更好的理解:
easyExcel实现多个sheet页导出,main方法测试。-CSDN博客
有什么不懂的可以和我讨论!