1、需求
将Word模板中的变量通过程序,替换成自己想要的数据。
2、准备模板
① 将Word另存为XML文件
② 打开保存好的XML文件,将Word中的替换变量改成${}
的形式
3、程序生成
① 引入模板引擎依赖
<dependency>
<groupId>com.quhaodian</groupId>
<artifactId>freemaker</artifactId>
<version>1.8.1</version>
</dependency>
② 实现代码
package com.baige;
import java.io.*;
import java.util.Map;
import java.util.HashMap;
import freemarker.template.Template;
import freemarker.template.Configuration;
public class Application {
public static void main(String[] args) throws Exception {
Map<String, Object> map = new HashMap<>();
map.put("name", "小明");
map.put("age", 12);
map.put("hobby", "篮球");
map.put("mobile", "112");
File file = new File("C:\\Users\\xxx\\Desktop");
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
configuration.setDirectoryForTemplateLoading(file);
Template template = configuration.getTemplate("自我介绍.xml","UTF-8");
File outFile = new File("C:\\Users\\xxx\\Desktop\\生成自我介绍.doc");
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
template.process(map, out);
}
}
③ 生成结果
3、注意:
如果Word生成XML文件之后,使用程序不能为变量设值,还可以使用WPS Office打开Word,重新生成XML文件。