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集合对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律