freemark填充表格
pom.xml 添加jar
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
先制作word模板
另存为xml格式
ide 打开 添加循环标签
<#list listInfo as list>
循环
</#list>
代码
public void createWord(Map dataMap, String templateName, String filePath) {
try {
//创建配置实例
Configuration configuration = new Configuration();
//设置编码
configuration.setDefaultEncoding("UTF-8");
//ftl模板文件
//configuration.setClassForTemplateLoading(Student.class,"/");
//获取模板
// Template template = configuration.getTemplate("freemark.ftl");
configuration.setDirectoryForTemplateLoading(new File("C:\\Users\\pact.PACT-20190329SP\\Desktop")); // FTL文件所存在的位置
// configuration.setClassForTemplateLoading(this.getClass(), ftlPath);//以类加载的方式查找模版文件路径
Template template = configuration.getTemplate("freemark.ftl");
//输出文件
File outFile = new File(filePath);
//如果输出目标文件夹不存在,则创建
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
//将模板和数据模型合并生成文件
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
//生成文件
template.process(dataMap, out);
//关闭流
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}