- 将已经排版好的word文档另存为xml格式
- 将xml文件模板放到resources/templates文件下
- 导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
4.修改模板,在需要动态写入数据的地方加上${变量名}
5.配置文件
spring:
freemarker:
suffix: .xml
template-loader-path: classpath:/templates/
content-type: text/html
charset: utf-8
cache: false
enabled: true
6.测试
package com.huy.marker;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
@SpringBootTest
class MarkerApplicationTests {
@Test
void contextLoads() throws IOException {
Configuration configuration = new Configuration(Configuration.VERSION_2_3_30);
configuration.setDefaultEncoding("utf-8");
configuration.setClassForTemplateLoading(this.getClass(), "/templates/");
Template template = configuration.getTemplate("test.xml");
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title","标题1231321");
dataMap.put("bianju","编剧斯蒂芬威风威风威风");
File outFile = new File("C:\\Users\\Admin\\Desktop\\Test.doc");
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
try {
template.process(dataMap,out);
out.flush();
out.close();
} catch (TemplateException e) {
e.printStackTrace();
}
}
}