• Spring Boot EasyPOI 使用指定模板导出Excel


    相信大家都遇到过,用户提出要把界面上的数据导成一个Excel,还得是用户指定的Excel格式,用原生的POI,需要自己去实现,相信是比较麻烦的,所以我们可以使用开源的EasyPOI.

    先上个图,看看是不是大家想要的效果.

    如图,是一个Demo导出模板,可以看到里面用了一些easy poi的公式,有了这个模板之后,我们只需要把需要的数据源形成后,调用接口就可以实现导出指定格式的模板了!

     一、先引入maven

            我们需要在指定模块中的pom.xml引入依赖包,如下:

    1. <dependency>
    2. <groupId>cn.afterturngroupId>
    3. <artifactId>easypoi-spring-boot-starterartifactId>
    4. <version>4.4.0version>
    5. dependency>

    二、关键代码调用

    引入依赖包之后,我们可以先看一下关键的代码使用,如下:

    1. Map map = new HashMap();//关键数据源对象
    2. //引入模板,注意,此处路径是相对与项目的resource目录下的,不需要自行去找到绝对路径
    3. TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
    4. params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
    5. Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
    6. OutputStream out = response.getOutputStream();
    7. workbook.write(out);
    8. out.flush();
    9. out.close();

    如上的关键代码,也就几句而已,可以看到,我们只需要找到我们的模板路径,然后把我们的业务数据封装好传给工具类,就完成了。

    三、示例

    有了上述的关键代码,我们根据开头的示例图,封装成指定格式,如下:

    1. Map map = new HashMap();//关键数据源对象
    2. //封装业务数据
    3. Map objInfo = new HashMap();
    4. objInfo.put("Aennr","1000009");
    5. objInfo.put("kgChr02","备注XXX");
    6. objInfo.put("Rlkey","状态XXX");
    7. List> list = new ArrayList<>();
    8. Map m1= new HashMap();
    9. m1.put("Ztype","变更");
    10. m1.put("Idnrk","123");
    11. m1.put("Zmaktx","描述");
    12. list.add(m1);
    13. map.put("info", objInfo);
    14. map.put("list", list);
    15. TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
    16. params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
    17. Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
    18. OutputStream out = response.getOutputStream();
    19. workbook.write(out);
    20. out.flush();
    21. out.close();

    我们可以看到,只需要往map中丢入指定内容即可显示在模板中。

    EasyPOI支持很多内容,公式等,详情可查看easyPOI的官方文档.

    easy poi 官方文档

  • 相关阅读:
    当SCM遇见RPA:实现高效协调的供应链管理
    深度学习动物识别 - 卷积神经网络 机器视觉 图像识别 计算机竞赛
    MLX90614红外测温传感器使用arduino采集温度数据OLED显示
    OpenCV 笔记(3):基本图形的绘制
    mybatis动态sql
    大学生《Web课程谁》期末网页制作 HTML+CSS+JavaScript 网页设计实例 瑜伽网站企业网站制作
    对接西部数据Western Digital EDI 系统
    离散数学--连通性和矩阵
    Epoch和episodes的区别
    想干程序员这行的,真的很需要这个,T0 级别的《面试资料全集》--Java 问题收录及答案详解,持续更新中...
  • 原文地址:https://blog.csdn.net/qq_42552574/article/details/134417339