1.安装MAVEN依赖
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
2.绘制word模板
- 打开word,按照需求绘制模板内容
- 保存为xml格式
- 手动更改保存后的文件格式为ftl
- 放入idea目录下,格式化xml标签,去掉${}前后的空格
3.编写测试代码
private Configuration configuration = null;
public ExportWordService() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
}
public void createDoc() throws UnsupportedEncodingException {
// 填充的数据
Map<String,String> dataMap=new HashMap<>();
dataMap.put("name", "张三");
dataMap.put("age", "18");
//这里我们的模板是放在templates包下面
configuration.setClassForTemplateLoading(this.getClass(), "/templates");
Template t=null;
try {
//test.ftl为要装载的模板
t = configuration.getTemplate("test.ftl");
} catch (IOException e) {
e.printStackTrace();
}
// 导出的文件名
File outFile = new File("D:/outFilessa"+Math.random()*10000+".doc");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
// 执行生成word
t.process(dataMap, out);
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
4.测试结果