java 根据freemarker模板 导出doc文件

依赖

    org.freemarker
    freemarker
    2.3.20
@Test
public void test() {
    Map dataMap = new HashMap();
    try {
        //编号
        dataMap.put("spring", "风萧萧兮易水寒");
        //日期
        dataMap.put("date", new SimpleDateFormat("yyyy年MM月dd日").format(new SimpleDateFormat("yyyy-MM-dd").parse("2018-09-19")));
        //附件张数
        dataMap.put("summer", "春天好春天秒");

        //Configuration 用于读取ftl文件
        Configuration configuration = new Configuration();
        configuration.setDefaultEncoding("utf-8");

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

        //指定路径的第二种方式,我的路径是C:/a.ftl
        //configuration.setDirectoryForTemplateLoading(new com.sun.java.util.jar.pack.Package.File("c:/"));

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

        //以utf-8的编码读取ftl文件
        Template template = configuration.getTemplate("temp.ftl", "utf-8");
        Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 10240);
        template.process(dataMap, out);
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

 

实测有效

你可能感兴趣的:(java 根据freemarker模板 导出doc文件)