package com.idea.ifpug.excel; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestExcel { // private String template = "E:\\data\\excelTemplate.xlsx"; public ExcelWriter getExcelWriter(OutputStream outputStream, String template){ return EasyExcel.write(outputStream).withTemplate(template).build(); } public WriteSheet getWriteSheet(Integer sheetIndex, String sheetName){ return EasyExcel.writerSheet(sheetIndex, sheetName).build(); } public void fillMap(ExcelWriter excelWriter, Map map, WriteSheet writeSheet){ excelWriter.fill(map, writeSheet); } public void fillListr(ExcelWriter excelWriter, List list, WriteSheet writeSheet){ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); excelWriter.fill(list, fillConfig, writeSheet); } public void clse(ExcelWriter excelWriter){ excelWriter.finish(); excelWriter.close(); } public static void test(Map map, List list) { String template = "E:\\data\\excelTemplate.xlsx"; String fileName = "E:\\data\\test.xlsx"; try (ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(template).build()) { // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面 for (int i = 0; i < 1; i++) { // 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。 // 实际上可以一直变 WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "sheet1").build(); // 分页去数据库查询数据 这里可以去数据库查询每一页的数据 // Map maps = MapUtils.newHashMap(); // maps.put("code", "8888"); // maps.put("leader", "测试用户"); // maps.put("endTime", "2023-10-10 09:51:32"); // maps.put("reportNo", "123456789"); excelWriter.fill(map, writeSheet1); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); excelWriter.fill(list, fillConfig, writeSheet1); // WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "sheet2").build(); // FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); // excelWriter.fill(list, fillConfig, writeSheet2); //// Map map = MapUtils.newHashMap(); //// map.put("reportNo", "8888"); // excelWriter.fill(map, writeSheet2); } } } public static void main(String[] args) throws IOException { Map map = new HashMap<>(); map.put("date", "2023-01-03"); map.put("someone", "测试人"); List list = new ArrayList<>(); list.add(new test("ren1", "18888888888", "串串")); list.add(new test("ren2", "18888888888", "串串")); list.add(new test("ren3", "18888888888", "串串")); test(map, list); } }