1,新建word
  格式是:姓名 ${vv} 或者 {{vv}}
2, 将该word文件另存为xml格式(注意是另存为,不是直接改扩展名) 
3, 将xml文件的扩展名直接改为ftl 
4, 用java代码完成导出(需要导入freemarker.jar) (将ftl文件放在resource下)

首先导入jar包
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.28</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

java代码

import freemarker.template.*;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

public class Test {
    @org.junit.Test
    public void exportSimpleWord() throws Exception{
        // 要填充的数据, 注意map的key要和word中${xxx}的xxx一致
        Map<String,Object> dataMap = new HashMap<String,Object>();
        dataMap.put("user", "张三");
        dataMap.put("name", "男");
        dataMap.put("date", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse("2018-09-19")));
        dataMap.put("sector", "giao");

//Configuration用于读取ftl文件
        Configuration configuration = new freemarker.template.Configuration(Configuration.VERSION_2_3_23);
        System.out.println(configuration.getVersion());
        configuration.setDefaultEncoding("utf-8");

/*以下是两种指定ftl文件所在目录路径的方式, 注意这两种方式都是
         * 指定ftl文件所在目录的路径,而不是ftl文件的路径
         */
        //指定路径的第一种方式(根据某个类的相对路径指定)
        configuration.setClassForTemplateLoading(this.getClass(),"/");

//指定路径的第二种方式,我的路径是C:/a.ftl
//        File file = new File("C:/");
//        System.out.println(this.getClass());
//        System.out.println();
       // configuration.setDirectoryForTemplateLoading(file);

// 输出文档路径及名称
        File outFile = new File("D:/test.doc");

//以utf-8的编码读取ftl文件  名字要正确,最好不要放在本地,可能会出现找不到。
        Template t1 = configuration.getTemplate("SOL4-P-T-001 皮带机订货提资单交接清单.ftl","utf-8");
       // Template t =  configuration.getTemplate("a.ftl","utf-8");
        Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240);
        t1.process(dataMap, out);
        out.close();
    }
}

如果其他都正常但是还是提示找不到ftl文件,看一下target里有没有

没有的话加入以下这个:

加在pom文件的build中

<resources><resource><directory>src/main/resources</directory><includes><include>*</include><include>*/*</include></includes><filtering>true</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.ftl</include></includes></resource>
</resources>

freemarker实现word模板相关推荐

  1. freemarker生成word模板

    freemarker生成word模板 一.引入依赖 <dependency><groupId>org.freemarker</groupId><artifac ...

  2. freemarker 使用word模板赋值

    1. 引包<dependency><groupId>org.freemarker</groupId><artifactId>freemarker< ...

  3. Java实现freemarker生成word模板

    博主在做的是将word源文件中的内容读取出来,然后按照固定的格式输出,当然,源文件有大量,所以编写了程序来批量自动生成目标文件. 本文要介绍的就是如何生成模板,并将从源文件截取的内容填充到模板文件(即 ...

  4. 用freemarker生成word模板

    需求: 给文书统一生成一个搞头文件,文件内容基本是一样的. 用freemarker生成docx文档 一.生成一个docx结尾的word模板,然后把文档的后缀docx改成zip,zip里会有生成很多文件 ...

  5. freemarker根据word模板导出动态word(Excel模板导出Excel)

    1.创建word模板 将需要替换的位置用"${}"代替,如下图: 2.将做好的模板文件保存为xml文件 3.打开xml文件,查看"${unitName}"是否在 ...

  6. Freemarker 生成word 模板文件

    2019独角兽企业重金招聘Python工程师标准>>> /***      * word 下载生成      * @param positionvo      * @return   ...

  7. 关于使用freemarker制作word模板经历的一些问题

    1.在制作xml模板工具时,千万不要使用wps,千万不要,千万不要,千万不要,wps的普适性更强,其制作的模板极有可能在office中打不开. 2.另存xml时,最好选择2003xml. 3.格式化x ...

  8. springboot+FreeMarker制作word模板

    FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一 ...

  9. SpringBoot使用Freemarker导出word模板(OpenXML)

    1.OpenXML 本文仅限WPS的word,微软的word另存为XML的格式略有不同 word.docx文档另存为xml之后会生成带有OpenXML标签的文档. 1.1.常用标签示意 标签 解释 & ...

  10. freemarker导出word模板

    一般通过 java 把想要的数据导出成word,需要先制作模板 工具有freemarker或velocity,相比之下感觉freemarker容易上手,操作简便 流程: 1.用word制作模板     ...

最新文章

  1. ON_MESSAGE,ON_COMMAND和ON_NOTIFY的区别和联系
  2. python Intel Realsense D435 图像自动采集程序 自动剔除模糊图像
  3. 发布Disruptor 3.0.0
  4. 如何在运行时更改日志记录级别
  5. 烤鸡(洛谷-P2089)
  6. LeetCode(867)——转置矩阵(JavaScript)
  7. 机器视觉:双远心镜头在弹簧检测中的应用
  8. layui select第一次无法选中_Windows 10 无法访问共享的解决办法大全
  9. 数据可视化BI平台--CBoard的使用
  10. 2008服务器系统开机用户名和密码忘记了,服务器2008密码忘记了
  11. Java小程序--抓取emai
  12. Excel单元格内换行(包括空行)for Mac
  13. 最新的鄞比 服务器mp4,阳光之下播出,彭冠英好适合傅慎行,和李承鄞比肩的人出来了...
  14. Labview和三菱Q系列PLC通讯
  15. 微信二维码来源统计自动生成二维码统计?
  16. 详解强大的SQL注入工具——SQLMAP
  17. 各大官网的隐藏彩蛋,我感觉自己打开了新世界的大门...
  18. 微星GL62M 7RDX笔记本矫正屏幕色彩
  19. XLS调色面板HSSFPalette
  20. 江苏省计算机应用基础统考,年江苏省普通高“专转本”统一考试计算机应用基础.doc...

热门文章

  1. Java基础语法02-流程控制
  2. 《那些年啊,那些事——一个程序员的奋斗史》——98
  3. 关于特殊后缀名如vue vm less等文件在DW中高亮显示并且代码提示的解决方案
  4. rosdep update 使用小鱼fishros解决ros1/ros2问题 2022
  5. homebrew安装常见错误解决
  6. 【Android】之 Flow 的使用和浅析
  7. Spring Cloud Alibaba 实战 | 第十二篇: 微服务整合Sentinel的流控、熔断降级,赋能拥有降级功能的Feign新技能熔断,实现熔断降级双剑合璧(JMeter模拟测试)
  8. 自制拖把机器人_懒出新境界:可以自己洗拖布的机器人
  9. GlobalSign的旗下的SSL证书产品
  10. php rpm是什么,1. 区分 rpm -qi -qf -ql -qa四个不同选项组合的作用?