• 大小: 1.43MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-12
  • 语言: Java
  • 标签:

资源简介

使用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  xmlword\
     文件         435  2013-06-07 17:19  xmlword\.classpath
     目录           0  2013-06-09 15:58  xmlword\.myeclipse\
     文件         294  2013-06-09 22:12  xmlword\.mymetadata
     文件        1009  2013-06-07 17:11  xmlword\.project
     目录           0  2013-06-09 22:12  xmlword\.settings\
     文件         167  2013-06-09 22:33  xmlword\.settings\org.eclipse.core.resources.prefs
     目录           0  2013-06-09 22:04  xmlword\src\
     目录           0  2013-06-09 22:04  xmlword\src\net\
     目录           0  2013-06-09 22:04  xmlword\src\net\laokboke\
     目录           0  2013-06-09 22:04  xmlword\src\net\laokboke\freemarker\
     文件        4630  2013-06-09 15:32  xmlword\src\net\laokboke\freemarker\ExportToWord.java
     目录           0  2013-06-09 22:04  xmlword\src\resources\
     文件       17502  2013-06-09 15:32  xmlword\src\resources\images.ftl
     文件      212678  2013-06-09 22:02  xmlword\src\resources\test.jpg
     文件       59497  2013-06-09 14:49  xmlword\src\resources\word.ftl
     目录           0  2013-06-09 22:04  xmlword\WebRoot\
     文件         834  2013-06-09 10:53  xmlword\WebRoot\index.jsp
     目录           0  2013-06-09 22:04  xmlword\WebRoot\meta-INF\
     文件          39  2013-06-07 17:11  xmlword\WebRoot\meta-INF\MANIFEST.MF
     文件       17450  2013-06-09 15:15  xmlword\WebRoot\MyJsp.jsp
     目录           0  2013-06-09 22:04  xmlword\WebRoot\WEB-INF\
     目录           0  2013-06-09 22:12  xmlword\WebRoot\WEB-INF\classes\
     目录           0  2013-06-09 22:12  xmlword\WebRoot\WEB-INF\classes\net\
     目录           0  2013-06-09 22:12  xmlword\WebRoot\WEB-INF\classes\net\laokboke\
     目录           0  2013-06-09 22:12  xmlword\WebRoot\WEB-INF\classes\net\laokboke\freemarker\
     文件        5246  2013-06-09 22:12  xmlword\WebRoot\WEB-INF\classes\net\laokboke\freemarker\ExportToWord.class
     目录           0  2013-06-09 22:33  xmlword\WebRoot\WEB-INF\classes\resources\
     文件       17502  2013-06-09 15:32  xmlword\WebRoot\WEB-INF\classes\resources\images.ftl
     文件      212678  2013-06-09 22:02  xmlword\WebRoot\WEB-INF\classes\resources\test.jpg
     目录           0  2013-06-09 22:14  xmlword\WebRoot\WEB-INF\classes\resources\upload\
............此处省略5个文件信息

评论

共有 条评论