easyexcel的简单使用(execl模板导出)

模板支持功能点

  1. 支持列表
  2. 支持自定义头名称
  3. 支持自定义fileName
  4. 支持汇总

模板示例

在这里插入图片描述

操作

pom引入

  <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>${easyexcel.version}</version>
        </dependency>

版本

  <easyexcel.version>3.3.4</easyexcel.version>

这里尽量使用新版本,用老版本的话可能会有问题。

简单封装easyexcel方法

public class EasyExportUtil {




    /**
     * 指定流输出
     * @param fileName
     * @param response
     * @param sheetName
     * @param templateFileName
     * @param list
     * @param <T>
     */
    public static <T>  void exportWithTemplate(String fileName,HttpServletResponse response, String sheetName, String templateFileName, List<T> list) {
        try {
            response.setHeader("content-disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(templateFileName).registerWriteHandler(new CustomTemplateSheetStrategy(0,sheetName)).build()) {
            WriteSheet writeSheet = EasyExcel.writerSheet().build();

            FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
            excelWriter.fill(list, fillConfig, writeSheet);
            Map<String, Object> map = new HashMap<>();
            map.put("date", "2019年10月9日13:28:28");
            map.put("total", 1000);
            excelWriter.fill(map, writeSheet);

        } catch (IOException e) {
            e.printStackTrace();
        }


    }





}


自定义拦截器

public class CustomTemplateSheetStrategy implements SheetWriteHandler {
    private Integer sheetNo;
    private String sheetName;
    public CustomTemplateSheetStrategy(String sheetName) {
        this.sheetName = sheetName;
    }
    public CustomTemplateSheetStrategy(Integer sheetNo, String sheetName) {
        this.sheetNo = sheetNo;
        this.sheetName = sheetName;
    }
    @Override
    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
    }
    /**
     * 功能:动态修改模板中sheet的名称
     * sheet创建完成后调用
     * @param writeWorkbookHolder
     * @param writeSheetHolder
     */
    @Override
    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
        if (sheetName == null) {
            return;
        }
        if (sheetNo == null) {
            sheetNo = 0;
        }
        writeWorkbookHolder.getCachedWorkbook().setSheetName(sheetNo, sheetName);
    }

}

date和total 我这里就写死了,大家根据自己的情况进行更改。

接口示例


    @GetMapping("/export")
    public void exportDeviceList(HttpServletResponse response) {

        List<ExcelData3> list = new ArrayList<>();
        for (int i = 0; i <= 10; i++) {
            ExcelData3 excelData3 = new ExcelData3();
            excelData3.setA("testA");
            excelData3.setB("testB");
            excelData3.setC("testC");
            excelData3.setD("testD");
            excelData3.setE("testE");
            excelData3.setF("testF");
            excelData3.setG("testG");
            excelData3.setH("testH");
            excelData3.setI("testI");
            list.add(excelData3);
        }
        EasyExportUtil.exportWithTemplate(System.currentTimeMillis() + ".xlsx", response, "我是一个sheetName", CommonUtlis.resolvePath("test.xlsx"), list);
    }

调用

在这里插入图片描述

导出示例

在这里插入图片描述

参考

easyexcel示例填充

相关推荐

  1. EasyExcel导入导出使用

    2024-06-13 19:06:03       47 阅读
  2. springboot使用EasyExcel实现Excel导入导出

    2024-06-13 19:06:03       37 阅读
  3. 使用 com.alibaba:easyexcel 导出excel文件时遇到问题

    2024-06-13 19:06:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 19:06:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 19:06:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 19:06:03       82 阅读
  4. Python语言-面向对象

    2024-06-13 19:06:03       91 阅读

热门阅读

  1. 大模型日报2024-06-13

    2024-06-13 19:06:03       36 阅读
  2. 京准电钟|基于纳秒级的GPS北斗卫星授时服务器

    2024-06-13 19:06:03       35 阅读
  3. [12] 使用 CUDA 进行图像处理

    2024-06-13 19:06:03       29 阅读
  4. python替换word文件中的图片

    2024-06-13 19:06:03       36 阅读
  5. 2024.05.31 校招 实习 内推 面经

    2024-06-13 19:06:03       35 阅读
  6. Go版RuoYi

    2024-06-13 19:06:03       32 阅读
  7. 工具:安装R语言的R包的各种方法

    2024-06-13 19:06:03       28 阅读
  8. 深度学习的点云检测

    2024-06-13 19:06:03       32 阅读
  9. 基于深度学习的深度图预测

    2024-06-13 19:06:03       29 阅读