使用freemarker模板引擎导出word或excel文件(代码实现)

不凡 2692 2

在项目中我们会遇到很多导入导出excel或者word 有时候一些比较复杂的表格设计用freemarker 来做为模板导出还是很不错的

具体操作

我们要针对该列表做数据导出模板

使用freemarker模板引擎导出word或excel文件(代码实现)-第1张图片-爱制作博客

在桌面右键新建一个excel文件,打开编辑为列表格式一样的表格

使用freemarker模板引擎导出word或excel文件(代码实现)-第2张图片-爱制作博客

文件,另存为xml格式的文件

使用freemarker模板引擎导出word或excel文件(代码实现)-第3张图片-爱制作博客

到桌面把刚才另存的文件后缀从xml改为ftl (实测不该后缀也可以使用)

使用freemarker模板引擎导出word或excel文件(代码实现)-第4张图片-爱制作博客  使用freemarker模板引擎导出word或excel文件(代码实现)-第5张图片-爱制作博客 使用freemarker模板引擎导出word或excel文件(代码实现)-第6张图片-爱制作博客

根据自己项目要查询出导出的数据

@RequestMapping("/exportExcel")
public void exportExcel(HttpServletResponse response)throws Exception{
    Map dataMap=new HashMap();
    dataMap.put("Name",getPara("Name"));
    dataMap.put("InspectResult",getPara("InspectResult"));
    dataMap.put("Year",getPara("Year"));
    dataMap.put("InspectResult",getPara("InspectResult"));
    dataMap.put("CheckStatus",getPara("CheckStatus"));
    
    
    //filePath 是刚才上一步我们保存的ftl文件(文件名字最好为英文 中文有可能出现乱码等一些其他问题)
    String filePath = "/templates/filetemplate/exportQuarterAssessment.ftl";
    
    
     //quarterAssessmentEntities 为我要导出的数据(导出的数据可以是list 也可以是map 根据自己的实际情况而定)
    List<QuarterAssessmentEntity> quarterAssessmentEntities=quarterAssessmentService.exportList(dataMap);
  
  
    Map mapData = new HashMap();
    mapData.put("quarterAssessmentEntities", quarterAssessmentEntities);
    try {
    //FileExportUtil 为freemarker生成excel的工具类 可在本站搜索FileExportUtil 并下载该工具类 
        File file = FileExportUtil.createFile(filePath, mapData);
        FileExportUtil.downWord(response, file, "季度考核结果", "xls");//此处后缀写xls(excel) 或者doc(word) 都可以
    } catch (IOException e) {
        e.printStackTrace();
    }
}

FileExportUtil工具类点击进入

后台代码写完后,进入我们刚才保存的ftl文件中编辑

以为后台写的是list 所以用#List 来循环表头之下的这一列

as 之前的 quarterAssessmentEntities  是我们上一步后台在map中put的名字

as 之后可以随便起名字 用自己起的名字来点出来对应的属性,即可取到对应的值


使用freemarker模板引擎导出word或excel文件(代码实现)-第7张图片-爱制作博客

至此教程就结束了!

测试导出的数据

使用freemarker模板引擎导出word或excel文件(代码实现)-第8张图片-爱制作博客

标签: freemarker java Excel 导入导出

发布评论 2条评论)

  • Refresh code

评论列表

2020-08-26 09:11:43

博主,第19行代码的逻辑是什么

2020-09-08 17:18:51

@Gcc 为了把查出来的数据放到Excel中遍历展示