//差循环输出表格,样式,图片
//https://www.cnblogs.com/pretttyboy/p/6282141.html
所需的包:
freemarker-2.3.28.jar
opencv-2.4.10-0.10.jar
sun.misc.BASE64Decoder.jar
doc模板 (保存为Word的xml):下面命名为test.xml
模拟填充doc的数据:
public class WordSetVo {
private String wd = "==测试表子==";
private String sex= "11";
private String name= "mary";
private String age= "11";
private String phone= "1111123324342";
public String getWd() {
return wd;
}
public String getSex() {
return sex;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
public String getPhone() {
return phone;
}
}
使用freemark根据数据,模板的内容进行生成doc文档:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class Freemark {
public static void setData(WordSetVo vo,String saveAddress){
Map<String, Object> map = new HashMap<String,Object>();
map.put("wd", vo.getWd());
map.put("sex", vo.getSex());
map.put("name", vo.getName());
map.put("age", vo.getAge());
map.put("phone", vo.getPhone());
try {
//文件存储位置
File outFile = new File(saveAddress);
//写
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));
//模板
String tempname = "test.xml";
@SuppressWarnings("deprecation")
Configuration configuration=new Configuration();
configuration.setDefaultEncoding("utf-8");
configuration.setClassForTemplateLoading(Freemark.class, "/com/xml");
Template t = configuration.getTemplate(tempname,"UTF-8");
t.process(map, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
WordSetVo vo = new WordSetVo();
String saveAddress = "D://d.doc";
Freemark.setData(vo, saveAddress);
}
}