引入jar包

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

ftl工具类

package com.example.demo;import freemarker.template.Configuration;
import freemarker.template.Template;import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Map;public class FtlUtils {/*** 生成 word 文件** @param dataMap 待填充数据* @param templateName 模板文件名称* @param filePath 模板文件路径* @param fileName 生成的 word 文件名称* @param response 响应流*/public static void createWord(Map dataMap, String templateName, String filePath, String fileName, HttpServletResponse response){// 创建配置实例Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);// 设置编码configuration.setDefaultEncoding(StandardCharsets.UTF_8.name());// ftl模板文件configuration.setClassForTemplateLoading(FtlUtils.class, filePath);try {// 获取模板Template template = configuration.getTemplate(templateName);response.setHeader("Content-disposition","attachment;filename=" + URLEncoder.encode(fileName + ".doc", StandardCharsets.UTF_8.name()));// 定义输出类型response.setContentType("application/msword");Writer out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(),"UTF-8"));// 生成文件template.process(dataMap, out);out.flush();out.close();} catch (Exception e){e.printStackTrace();}}
}

通过ftl模板生成并下载word文档

//下载word文档
@RequestMapping(value = "/ftlWord")
public void createFtl(HttpServletResponse response,String ftlname) {Map map = new HashMap();map.put("name", "张三");map.put("age", 20);map.put("sex","男");FtlUtils.createWord(map, "test.ftl", "/ftl/", "测试文件", response);
}

通过ftl预览word文档

//预览word文档
@RequestMapping(value = "/selectFtl")
public String selectFtl(HttpServletResponse response) {Map map = new HashMap();map.put("name", "张三");map.put("age", 20);map.put("sex","男");return "/ftl/test";}

word ftl操作相关推荐

  1. .net 使用 Aspose.Words 进行 Word替换操作

    .net 使用 Aspose.Words 进行 Word替换操作 原文 http://www.cnblogs.com/codealone/archive/2013/04/02/2995224.html ...

  2. 计算机硬件Word,[计算机硬件及网络]word的操作.doc

    [计算机硬件及网络]word的操作.doc Office Word 2010高级应用技术长文档排版一.考查知识点内置样式修改与使用.新建样式.题注.交叉引用.脚注与尾注.目录.图表目录.分节符的使用. ...

  3. python怎么重命名word文件,Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  4. 计算机应用操作题word,计算机应用基础网考模拟练习题Word部分操作题

    计算机应用基础网考模拟练习题Word部分操作题 1.打开当前试题目录中的TEST1.DOC文件,并完成下面操作: (1)在" 基于Windows95/98"后添加"操作系 ...

  5. office是python打开方式_Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就 ...

  6. WPS怎么在线转换成Word,WPS转换成Word的操作步骤

    WPS转换成Word怎么操作?WPS文件也会比较熟悉的办公软件,但是WPS和Word的操作方法也有不一样的地方,所以将WPS转换成Word就是为了更好的操作文档,接下来就一起看一下WPS转换成Word ...

  7. 计算机word基础操作知识

    计算机word基础操作知识点 1. Word 2003的基本功能有:(1)文字的编辑和自动更正:(2)格式的编排和文档的打印:(3)表格的制作:(4)图形和图像的设置:(5)链接与嵌入:(6)帮助功能 ...

  8. 怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以)

    怎么把word里面的彩色图转化为灰度图,直接在word里面操作,无需转其他软件,超简单!(位图和矢量图都可以) Microsoft Office Word是微软公司的一个文字处理器应用程序.它最初是由 ...

  9. PDF转换Word如何操作?用迅读PDF转换器,任意互转

    PDF格式的文件应用越来越广泛,无论是日常办公.教学,还是闲暇时电子书阅读,都需要用到专业的PDF软件.其中,除了PDF文件阅读和编辑,相信大家用的比较频繁的就是PDF转换Word,尤其是在校大学生, ...

  10. 计算机word综合操作,『word2010表格操作及综合排版计算机实验报告』excle2010实验操作...

    求解,五种启动Excel 2010程序的操作方法. 双击图标 右击->打开 写批处理 开始->运行 任务管理器里面添加任务 word2010的实验操作总结小结 WORD综合排版实验一. 实 ...

最新文章

  1. 玩转GridView
  2. Java GC收集器配置说明
  3. 【Linux 】使用 Shell 批量重命名文件名称
  4. java选择安装路径的功能怎么实现_水槽怎么选择,从安装方式,材质功能,江水平给你一次性说清楚...
  5. 北京2018网络赛 hihocoder#1828 : Saving Tang Monk II (BFS + DP +多开一维)
  6. Mac使用手册:如何检查 Mac 或 iOS 设备仍在保修范围内
  7. 软件项目管理系统-进度管理
  8. centos系统安装杀毒软件clamav
  9. 著名Wiki站点一览
  10. 抖音怎么上传无损画质_抖音高清视频怎么上传的,抖音怎么上传无损画质
  11. 【天嵌分享活动】E9卡片电脑设置显示屏分辨率
  12. ale.js 对比其他框架
  13. JS - 实现word预览功能
  14. java io密集型任务_Java 多线程(一):CPU密集型、IO密集型
  15. CSS Tailwind
  16. Debug模式 控制台调试指令
  17. 脉冲消融(PFA)中使用心电门控的作用
  18. easymock平台语法初体验
  19. (私人收藏)[资源整理]天蚕土豆小说和经典书籍共二十三本书待看书
  20. RecycleView的Item的宽不能填充满

热门文章

  1. 用序列到序列和注意模型实现的翻译:Translation with a Sequence to Sequence Network and Attention
  2. layui上传文件的choose只触发一次
  3. 梦碎IPO的百果园,给水果零售业敲了个警钟
  4. 马云也进军游戏了?还赚了上亿元,网友:马化腾先生怎么看呢?
  5. 苹果各版本手机更换电池的视频
  6. adb connect 连接机顶盒显示:由于目标计算机积极拒绝,无法连接10061
  7. 解决ERROR:Local variable count defined in an enclosing scope must be final or effectively final
  8. 2020年,技术圈十大“翻车”事件!
  9. 【语音识别】基于keras的简易语音识别
  10. 皮皮虾vs最右短视频分析