原文地址
Demo地址
最简单的填充
模版

效果

对象
| @Getter |
| @Setter |
| @EqualsAndHashCode |
| public class FillData { |
| private String name; |
| private double number; |
| private Date date; |
| } |
代码
| |
| |
| |
| |
| |
| @Test |
| public void simpleFill() { |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "simple.xlsx"; |
| |
| |
| String fileName = TestFileUtil.getPath() + "simpleFill" + System.currentTimeMillis() + ".xlsx"; |
| |
| FillData fillData = new FillData(); |
| fillData.setName("张三"); |
| fillData.setNumber(5.2); |
| EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(fillData); |
| |
| |
| fileName = TestFileUtil.getPath() + "simpleFill" + System.currentTimeMillis() + ".xlsx"; |
| |
| Map<String, Object> map = new HashMap<String, Object>(); |
| map.put("name", "张三"); |
| map.put("number", 5.2); |
| EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(map); |
| } |
填充列表
模版

效果

代码
| |
| |
| |
| |
| |
| @Test |
| public void listFill() { |
| |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "list.xlsx"; |
| |
| |
| String fileName = TestFileUtil.getPath() + "listFill" + System.currentTimeMillis() + ".xlsx"; |
| |
| EasyExcel.write(fileName).withTemplate(templateFileName).sheet().doFill(data()); |
| |
| |
| |
| fileName = TestFileUtil.getPath() + "listFill" + System.currentTimeMillis() + ".xlsx"; |
| EasyExcel.write(fileName) |
| .withTemplate(templateFileName) |
| .sheet() |
| .doFill(() -> { |
| |
| return data(); |
| }); |
| |
| |
| fileName = TestFileUtil.getPath() + "listFill" + System.currentTimeMillis() + ".xlsx"; |
| ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); |
| WriteSheet writeSheet = EasyExcel.writerSheet().build(); |
| excelWriter.fill(data(), writeSheet); |
| excelWriter.fill(data(), writeSheet); |
| |
| excelWriter.finish(); |
| } |
复杂的填充
模版

最终效果

代码
| |
| |
| |
| |
| |
| @Test |
| public void complexFill() { |
| |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "complex.xlsx"; |
| |
| String fileName = TestFileUtil.getPath() + "complexFill" + System.currentTimeMillis() + ".xlsx"; |
| ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); |
| WriteSheet writeSheet = EasyExcel.writerSheet().build(); |
| |
| |
| |
| |
| FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); |
| excelWriter.fill(data(), fillConfig, writeSheet); |
| excelWriter.fill(data(), fillConfig, writeSheet); |
| Map<String, Object> map = new HashMap<String, Object>(); |
| map.put("date", "2019年10月9日13:28:28"); |
| map.put("total", 1000); |
| excelWriter.fill(map, writeSheet); |
| excelWriter.finish(); |
| } |
数据量大的复杂填充
模版

效果

代码
| |
| |
| |
| |
| |
| |
| |
| @Test |
| public void complexFillWithTable() { |
| |
| |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "complexFillWithTable.xlsx"; |
| |
| String fileName = TestFileUtil.getPath() + "complexFillWithTable" + System.currentTimeMillis() + ".xlsx"; |
| ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); |
| WriteSheet writeSheet = EasyExcel.writerSheet().build(); |
| |
| excelWriter.fill(data(), writeSheet); |
| excelWriter.fill(data(), writeSheet); |
| |
| |
| Map<String, Object> map = new HashMap<String, Object>(); |
| map.put("date", "2019年10月9日13:28:28"); |
| excelWriter.fill(map, writeSheet); |
| |
| |
| |
| List<List<String>> totalListList = new ArrayList<List<String>>(); |
| List<String> totalList = new ArrayList<String>(); |
| totalListList.add(totalList); |
| totalList.add(null); |
| totalList.add(null); |
| totalList.add(null); |
| |
| totalList.add("统计:1000"); |
| |
| excelWriter.write(totalListList, writeSheet); |
| excelWriter.finish(); |
| |
| |
| } |
横向的填充
模版

最终效果

代码
| |
| |
| |
| |
| |
| @Test |
| public void horizontalFill() { |
| |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "horizontal.xlsx"; |
| |
| String fileName = TestFileUtil.getPath() + "horizontalFill" + System.currentTimeMillis() + ".xlsx"; |
| ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); |
| WriteSheet writeSheet = EasyExcel.writerSheet().build(); |
| FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(); |
| excelWriter.fill(data(), fillConfig, writeSheet); |
| excelWriter.fill(data(), fillConfig, writeSheet); |
| |
| Map<String, Object> map = new HashMap<String, Object>(); |
| map.put("date", "2019年10月9日13:28:28"); |
| excelWriter.fill(map, writeSheet); |
| |
| |
| excelWriter.finish(); |
| } |
多列表组合填充
模版

效果

代码
| |
| |
| |
| |
| |
| @Test |
| public void compositeFill() { |
| |
| |
| String templateFileName = |
| TestFileUtil.getPath() + "demo" + File.separator + "fill" + File.separator + "composite.xlsx"; |
| |
| String fileName = TestFileUtil.getPath() + "compositeFill" + System.currentTimeMillis() + ".xlsx"; |
| ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); |
| WriteSheet writeSheet = EasyExcel.writerSheet().build(); |
| FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL).build(); |
| |
| excelWriter.fill(new FillWrapper("data1", data()), fillConfig, writeSheet); |
| excelWriter.fill(new FillWrapper("data1", data()), fillConfig, writeSheet); |
| excelWriter.fill(new FillWrapper("data2", data()), writeSheet); |
| excelWriter.fill(new FillWrapper("data2", data()), writeSheet); |
| excelWriter.fill(new FillWrapper("data3", data()), writeSheet); |
| excelWriter.fill(new FillWrapper("data3", data()), writeSheet); |
| |
| Map<String, Object> map = new HashMap<String, Object>(); |
| map.put("date", "2019年10月9日13:28:28"); |
| excelWriter.fill(map, writeSheet); |
| |
| |
| excelWriter.finish(); |
| } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤