mojxtangのblog
mojxtangのblog
Java使用freemarker生成DOC文档

1、创建自己需要的模板

https://blog.mojxtang.com/wp-content/uploads/2019/09/TIM图片20190912143635.png

2、将此模板转成xml

https://blog.mojxtang.com/wp-content/uploads/2019/09/0KYHPLN@_851CKEABMP.png

3、直接将后缀改为.ftl

4、导入jar包

<!-- 导入jar -->
<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.23</version>
</dependency>

5、具体业务代码

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class DocUtil {

  /**
   * 生成word
   * 
   * @param dataMap   数据集合
   * @param mubanFile 模板路径
   * @param mubanName 模板名称
   * @param wordPaht  导出路径
   */
  public static void createWord(Map<String, Object> dataMap, String mubanFile, String mubanName, String wordPaht) {
    try {
      // Configuration 用于读取ftl文件
      Configuration configuration = new Configuration();
      configuration.setDefaultEncoding("utf-8");

      // 模板路径
      configuration.setDirectoryForTemplateLoading(new File(mubanFile));

      // 输出文档路径及名称
      File outFile = new File(wordPaht);
      // 以utf-8的编码读取ftl文件
      Template template = configuration.getTemplate(mubanName, "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();
    }
  }

  public static void main(String[] args) {
    Map<String, Object> dataMap = new HashMap<String, Object>();
    dataMap.put("id", "1");
    dataMap.put("name", "张三");
    dataMap.put("ip", "127.0.0.1");
    dataMap.put("path", "微信");
    dataMap.put("time", "2019年9月12日12:23:56");
    createWord(dataMap, "c://", "模板.ftl", "c://导出数据.doc");
  }
}

6、结果

https://blog.mojxtang.com/wp-content/uploads/2019/09/KBA5FOO0USZC06P.png

 

本文地址:Java使用freemarker生成DOC文档

发表评论

textsms
account_circle
email

mojxtangのblog

Java使用freemarker生成DOC文档
1、创建自己需要的模板 2、将此模板转成xml 3、直接将后缀改为.ftl 4、导入jar包 <!-- 导入jar --> <dependency> <groupId>org.freemarker</groupId> <…
扫描二维码继续阅读
2019-09-12