EasyExcel如何使用表头模板

解决方案

在EasyExcel的官方示例中,使用模板导出Excel,其结果仍然还会重新打印表头。不满足使用表头模板的需求。在参考源码后,找到如下解决方案。

1
2
3
4
5
6
7
        String templateFileName = TestFileUtil.getPath() + "demo" + File.separator + "demo1.xlsx";
        System.out.println(templateFileName);
        String fileName = TestFileUtil.getPath() + "templateWrite" + System.currentTimeMillis() + ".xlsx";
        System.out.println(fileName);
        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
//        EasyExcel.write(fileName, DemoData.class).withTemplate(templateFileName).sheet().doWrite(data());
        EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doWrite(data());

 

导出实体类定义

复制代码
 1 public class DemoData {
 2     @ExcelProperty("字符串标题")
 3     private String string;
 4     @ExcelProperty("日期标题")
 5     private Date date;
 6     @ExcelProperty("数字标题")
 7     private Double doubleData;
 8 
 9     /**
10      * 忽略这个字段
11      */
12     @ExcelIgnore
13     private String ignore;
14 }
复制代码

 

 

运行结果

没有打印导出实体类定义的表头,使用的是模板的表头。符合目标需求。

 

若沿用官方示例的写法。其运行结果为:双层表头带数据信息。

 

总结

 EasyExcel.write(fileName, DemoData.class)方法中第二参数表示Excel文件的表头,若不传则不会写表头列信息;同时doWirte(data())中的data信息仍然为导出实体类的List集合对象。

 

posted @   南丶瓜  阅读(836)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示