一、生成模板,动态获取的部分用${变量名},然后将word另存为xml文件,再将后缀名改成ftl格式。然后将模板放在对应的目录下。

二、引入freemarker包,mawen引用

 <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>

三、代码实现

@ApiOperation(value = "word", httpMethod = "GET")
@RequestMapping(value = "/word", method = RequestMethod.GET)
@Transactional
public void getWord(HttpServletResponse response)
{
try {
Map<String,Object> dataMap = new HashMap<String,Object>();
dataMap.put("id", 123456);
dataMap.put("code", "张三");
dataMap.put("name", "123123");
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
//指定模板路径的第二种方式,我的路径是D:/ 还有其他方式
configuration.setDirectoryForTemplateLoading(new File("D:/"));//这里对应模板的物理路径 // 输出文档路径及名称
// File outFile = new File("D:/test.doc");
//以utf-8的编码读取ftl文件
Template t = configuration.getTemplate("模板1.ftl","utf-8");
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("适得府君书的", "UTF-8") + ".doc");
// Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240);
Writer out = null;
out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));
t.process(dataMap, out);
out.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

我生成的模板:

word导出的结果:

对应map中的三个值。

最新文章

  1. 常用数据结构-线性表及Java 动态数组 深究
  2. 谁说JavaScript容易?
  3. Android开发探秘之一:创建可以点击的Button
  4. Silverlight C#动态设置样式
  5. nodejs ssh2
  6. You Need This One Skill to Succeed in IT--reference
  7. bzoj 3781: 小B的询问 分块
  8. fmt:formatDate标签的输出格式
  9. perl学习(8) 控制:unless,until,next,redo,last
  10. CentOS 6.3 安装 samba 共享(转)
  11. java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS
  12. nginx配置静态项目
  13. 如何清除Windows10中的恢复分区
  14. 使用Linux的环境变量
  15. 1.TabActivity、视图树、动画
  16. python sort、sorted高级排序技巧
  17. 阿里云 CentOS安装Git
  18. #JS 获取屏幕分辨率、网页可见区域等
  19. [转] Entity Framework 无法加载指定的元数据资源。
  20. c++11 继承构造

热门文章

  1. [转帖]安装prometheus+grafana监控mysql redis kubernetes等
  2. 什么是时序时空数据库TSDB
  3. IDEA自动生成的注释模板
  4. iView组件Tabs嵌套使用
  5. 代理、反射、注解、hook
  6. 怎样理解Node对象接口
  7. X-Router软路由设置
  8. wcf可以返回的类型有哪些
  9. Eclipse 设置新建文件默认编码为 utf-8 的方法
  10. springMVC基础框架搭建