TestExcel.java 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.idea.ifpug.excel;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.alibaba.excel.ExcelWriter;
  4. import com.alibaba.excel.write.metadata.WriteSheet;
  5. import com.alibaba.excel.write.metadata.fill.FillConfig;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.OutputStream;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.List;
  12. import java.util.Map;
  13. public class TestExcel {
  14. // private String template = "E:\\data\\excelTemplate.xlsx";
  15. public ExcelWriter getExcelWriter(OutputStream outputStream, String template){
  16. return EasyExcel.write(outputStream).withTemplate(template).build();
  17. }
  18. public WriteSheet getWriteSheet(Integer sheetIndex, String sheetName){
  19. return EasyExcel.writerSheet(sheetIndex, sheetName).build();
  20. }
  21. public void fillMap(ExcelWriter excelWriter, Map map, WriteSheet writeSheet){
  22. excelWriter.fill(map, writeSheet);
  23. }
  24. public void fillListr(ExcelWriter excelWriter, List list, WriteSheet writeSheet){
  25. FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
  26. excelWriter.fill(list, fillConfig, writeSheet);
  27. }
  28. public void clse(ExcelWriter excelWriter){
  29. excelWriter.finish();
  30. excelWriter.close();
  31. }
  32. public static void test(Map map, List list) {
  33. String template = "E:\\data\\excelTemplate.xlsx";
  34. String fileName = "E:\\data\\test.xlsx";
  35. try (ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(template).build()) {
  36. // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面
  37. for (int i = 0; i < 1; i++) {
  38. // 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。
  39. // 实际上可以一直变
  40. WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "sheet1").build();
  41. // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
  42. // Map<String, Object> maps = MapUtils.newHashMap();
  43. // maps.put("code", "8888");
  44. // maps.put("leader", "测试用户");
  45. // maps.put("endTime", "2023-10-10 09:51:32");
  46. // maps.put("reportNo", "123456789");
  47. excelWriter.fill(map, writeSheet1);
  48. FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
  49. excelWriter.fill(list, fillConfig, writeSheet1);
  50. // WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "sheet2").build();
  51. // FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
  52. // excelWriter.fill(list, fillConfig, writeSheet2);
  53. //// Map<String, Object> map = MapUtils.newHashMap();
  54. //// map.put("reportNo", "8888");
  55. // excelWriter.fill(map, writeSheet2);
  56. }
  57. }
  58. }
  59. public static void main(String[] args) throws IOException {
  60. Map<String, String> map = new HashMap<>();
  61. map.put("date", "2023-01-03");
  62. map.put("someone", "测试人");
  63. List<test> list = new ArrayList<>();
  64. list.add(new test("ren1", "18888888888", "串串"));
  65. list.add(new test("ren2", "18888888888", "串串"));
  66. list.add(new test("ren3", "18888888888", "串串"));
  67. test(map, list);
  68. }
  69. }