freemaker导出

2024-01-20 03:04
文章标签 导出 freemaker

本文主要是介绍freemaker导出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、创建ftl模板文件

1、将xls文件转换为xml格式

        需要将xml中内容格式化一下, 在线 XML 格式化 | 菜鸟工具 (jyshare.com)

         将格式化好的内容,保存在 ftl 文件中,放入项目文件。

二、后端对数据做组装 

        Java代码中对导出文件做赋值

@Overridepublic void exportFile(String cityId, Date filingTime, HttpServletRequest request, HttpServletResponse response) {try {String fileName = "xxxxx.xls";String tplType = "ftl/constructionSafetySupervision.ftl";response.reset();response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF8"));ConstructionSafetySupervision surveyDesignSupervision = new ConstructionSafetySupervision();surveyDesignSupervision.setFilingTime(filingTime);surveyDesignSupervision.setCityId(cityId);List<ConstructionSafetySupervision> list = this.mapper.findList2(surveyDesignSupervision);TemplateResourceUtils.renderResponse(response.getWriter(), new TemplateResourceUtils.AbstractTemplateMap() {@Overrideprotected void getMapData(Map<String, Object> map) {map.put("empList", list);map.putAll(TemplateResourceUtils.getYearMouth(surveyDesignSupervision.getFilingTime()));}}, tplType, UserUtils.getUser().getId());FileUtil.deleteAllFilesOfDir(new File(System.getProperty("user.dir") + File.separator + "static/" + UserUtils.getUser().getId()));} catch (Exception e) {e.printStackTrace();}}

        String tplType = "ftl/constructionSafetySupervision.ftl"; 模板所属路径

        设置返回体的类型

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

        存放文件名称 filename,URLEncoder.encode工具类将带有汉字的文件名做转换

 response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF8"));

        这里的map存放的就是在模板中需要遍历的数据集 

  @Overrideprotected void getMapData(Map<String, Object> map) {map.put("empList", list);map.putAll(TemplateResourceUtils.getYearMouth(surveyDesignSupervision.getFilingTime()));

        将数据传入到流中写入到文件里

    public static void renderResponse(Writer writer, AbstractTemplateMap templateMap, String templateFilePath ,String userId) throws Exception {Map<String,Object> map = Maps.newHashMap();templateMap.getMapData(map);String targetFilePath = System.getProperty("user.dir") + File.separator + "static/" + userId +File.separator + FileUtil.getFileName(templateFilePath);String content = FileUtils.getContentsAsString(getFile(templateFilePath,targetFilePath));FreeMarkers.renderResponse(writer ,content ,map);}

三、数据在 ftl 模板中如何遍历

<#list empList! as emp> 
${emp.panelist!}
</#list>

        list 中存放map的key ,${emp.panelist!} 由key.参数名组成

        ${emp.demonstrationTime?string('yyyy-MM-dd')} 时间需要格式转化一下

 

这篇关于freemaker导出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624602

相关文章

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

java导出pdf文件的详细实现方法

《java导出pdf文件的详细实现方法》:本文主要介绍java导出pdf文件的详细实现方法,包括制作模板、获取中文字体文件、实现后端服务以及前端发起请求并生成下载链接,需要的朋友可以参考下... 目录使用注意点包含内容1、制作pdf模板2、获取pdf导出中文需要的文件3、实现4、前端发起请求并生成下载链接使

SpringBoot实现导出复杂对象到Excel文件

《SpringBoot实现导出复杂对象到Excel文件》这篇文章主要为大家详细介绍了如何使用Hutool和EasyExcel两种方式来实现在SpringBoot项目中导出复杂对象到Excel文件,需要... 在Spring Boot项目中导出复杂对象到Excel文件,可以利用Hutool或EasyExcel

Java导出Excel动态表头的示例详解

《Java导出Excel动态表头的示例详解》这篇文章主要为大家详细介绍了Java导出Excel动态表头的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录前言一、效果展示二、代码实现1.固定头实体类2.动态头实现3.导出动态头前言本文只记录大致思路以及做法,代码不进

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结