资源简介
使用freemarker技术,首先将word模板另存为xml文档,方便填充数据。然后将后缀名改为ftl,简单方便.
代码片段和文件信息
package net.laokboke.freemarker;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import sun.misc.base64Encoder;
import freemarker.template.Configuration;
import freemarker.template.DefaultobjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class ExportToWord {
//classpath的文件路径
private static String cp = “/resources“;
public void export(){
Configuration cfg = new Configuration();
cfg.setDefaultEncoding(“UTF-8“);
ExportToWord etw = new ExportToWord();
try {
// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。
cfg.setDirectoryForTemplateLoading(new File(ExportToWord.class.getResource(cp).getFile()));
// 指定模板如何检索数据模型,这是一个高级的主题了…
// 但先可以这么来用:
cfg.setobjectWrapper(new DefaultobjectWrapper());
Template temp = cfg.getTemplate(“word.ftl“);
Writer writer = etw.getWriter(““+System.currentTimeMillis());
Map m = etw.getData();
etw.createDoc(temp m writer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void insertImageIntoWord(){
Configuration cfg = new Configuration();
cfg.setDefaultEncoding(“UTF-8“);
ExportToWord etw = new ExportToWord();
try {
// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。
cfg.setDirectoryForTemplateLoading(new File(ExportToWord.class.getResource(cp).getFile()));
// 指定模板如何检索数据模型,这是一个高级的主题了…
// 但先可以这么来用:
cfg.setobjectWrapper(new DefaultobjectWrapper());
Template temp = cfg.getTemplate(“images.ftl“);
Writer writer = etw.getWriter(““+System.currentTimeMillis());
Map m = new HashMap();
String imageStr = etw.getImageStr();
m.put(“image“ imageStr);
etw.createDoc(temp m writer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Writer getWriter(String time){
// 输出文档路径及名称
String savePath = ExportToWord.class.getResource(cp).getPath();
System.out.println(“savePath=“+savePath);
File file = new File(savePath+“/upload“);
if(!file.exists()){
file.mkdirs();
}
File outFile = new File(savePath+“/upload/“+time+“.doc“);
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile) “utf-8“));
} catch (Exception e1) {
e1.printStackTrace();
}
return out;
}
public void createDoc(Template tMap dataMapWriter out) {
try {
t.process(dataMap out);
out.flush();
out.close();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 读取图片并生成相应的字符串
* @r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-06-09 22:12 xm
文件 435 2013-06-07 17:19 xm
目录 0 2013-06-09 15:58 xm
文件 294 2013-06-09 22:12 xm
文件 1009 2013-06-07 17:11 xm
目录 0 2013-06-09 22:12 xm
文件 167 2013-06-09 22:33 xm
目录 0 2013-06-09 22:04 xm
目录 0 2013-06-09 22:04 xm
目录 0 2013-06-09 22:04 xm
目录 0 2013-06-09 22:04 xm
文件 4630 2013-06-09 15:32 xm
目录 0 2013-06-09 22:04 xm
文件 17502 2013-06-09 15:32 xm
文件 212678 2013-06-09 22:02 xm
文件 59497 2013-06-09 14:49 xm
目录 0 2013-06-09 22:04 xm
文件 834 2013-06-09 10:53 xm
目录 0 2013-06-09 22:04 xm
文件 39 2013-06-07 17:11 xm
文件 17450 2013-06-09 15:15 xm
目录 0 2013-06-09 22:04 xm
目录 0 2013-06-09 22:12 xm
目录 0 2013-06-09 22:12 xm
目录 0 2013-06-09 22:12 xm
目录 0 2013-06-09 22:12 xm
文件 5246 2013-06-09 22:12 xm
目录 0 2013-06-09 22:33 xm
文件 17502 2013-06-09 15:32 xm
文件 212678 2013-06-09 22:02 xm
目录 0 2013-06-09 22:14 xm
............此处省略5个文件信息
评论
共有 条评论