org.freemarker
freemarker
2.3.28
引入依赖之后
找到word的doc文档 类似于这种 在doc中 保存 ${字段} ${title}
(114条消息) Java使用FreeMarker自动生成Word文档(带图片和表单)_JavaBigData1024的博客-CSDN博客_freemarker动态生成word表格
代码
package com.zcst.modules.doc.util;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class DocumentHandler {
//饱汉模式,需要用到时才去创建
private Configuration configuration = null;
public DocumentHandler() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
}
//创建后缀为.doc的文档
public void creatDoc() throws IOException {
//把数据放进这个map里面进行填充
Map dataMap = new HashMap();
//获取数据的方法
getData(dataMap);
//模板文件的位置,你们的模板就是自己修改的flt文档,我的是跟代码同一个包下(确保能找到就可以) acd.ftl 在这个路径下
configuration.setDirectoryForTemplateLoading(new File("E:\print\print"));
Template template = null;
try {
//加载---要装载的模板文件
template = configuration.getTemplate("acd.ftl");
} catch (Exception e) {
e.printStackTrace();
}
//输出文档路径及名称,注意后缀一定要.doc!不然代码运行完后会打不开
File outFile = new File("E:\test.doc");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
template.process(dataMap, out);
// System.out.println(out); 查看数据
// System.out.println(dataMap); 查看数据
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void getData(Map dataMap) {
// dataMap.put("businesstypes", "■开卡 □销户 □业务类型变更(变更类型:1新增号码、2 删除号码、3 更换号码)变更原因:______________");
// dataMap.put("applicationscene", "■AXB □AX □其他_______________________");
// dataMap.put("productfuntion", "□录音 ■非录音");
// dataMap.put("paymodel", "■预付 □预付");
// List



