package com;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
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 freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class Word {
private Configuration configuration = null;
public Word() {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
}
public void createDoc() {
// 要填入模本的数据文件
Map dataMap = new HashMap();
getData(dataMap);
// 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
// ftl文件存放路径
configuration.setClassForTemplateLoading(this.getClass(), "/com/ftl");
Template t = null;
try {
// test.ftl为要装载的模板
t = configuration.getTemplate("QQ.ftl");
t.setEncoding("utf-8");
} catch (IOException e) {
e.printStackTrace();
}
// 输出文档路径及名称
File outFile = new File("F:/2013/test.doc");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
} catch (Exception e1) {
e1.printStackTrace();
}
try {
t.process(dataMap, out);
out.close();
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* 注意dataMap里存放的数据Key值要与模板中的参数相对应
* @param dataMap
*/
private void getData(Map dataMap) {
dataMap.put("title", "Test");
dataMap.put("nian", "二零一二");
dataMap.put("danweiming", "陕西");
List lists = new ArrayList();
WordBean w1 = new WordBean();
w1.setPaixu("1");
w1.setBiaoduan("标段一");
WordBean w2 = new WordBean();
w2.setPaixu("2");
w2.setBiaoduan("标段二");
lists.add(w1);
lists.add(w2);
dataMap.put("wordBeans", lists);
dataMap.put("paiming", "1");
dataMap.put("biaoduan", "标段一");
}
public static void main(String[] args) {
new Word().createDoc();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
JAVA生成word模板程序步骤 1、 将freemarker-2.3.13.jar复制到项目\WEB-INF\lib目录下 2、 编辑模板文件 (1) 将DOC文件另存为xml文件,将xml文件在eclipse环境下打开,右键选“源”→“格式”。此处注意xml文件属性是UTF-8。 (2) 将xml文件中需要替换的地方用${XXX}替换 (3) 将xml文件的内容复制到对应的ftl文件中 注意: 表格的处理方法 如果模板中有表格,则word文件中只留一个表头和一个表格行。然后在转换后的xml文件中找到该表格行的位置,“<w:tr…”开头,”</w:tr>”结尾。 在表格行之前加: <#list wordBeans as w> 在表格行之后加: </#list> 图片的处理方法 把需要保存的图片转换成二进制字符串,保存到变量中并在xml文件中将二进制串替换 注意dataMap里存放的数据Key值要与模板中的参数相对应 3、 运行word.java 执行结果:
资源推荐
资源详情
资源评论
收起资源包目录
JavaGenWord.rar (11个子文件)
JavaGenWord
.project 387B
freemarker-2.3.13.jar 850KB
bin
com
WordBean.class 704B
Word.class 3KB
ftl
QQ.ftl 54KB
.settings
org.eclipse.core.resources.prefs 133B
org.eclipse.jdt.core.prefs 629B
src
com
WordBean.java 353B
Word.java 2KB
ftl
QQ.ftl 54KB
.classpath 292B
共 11 条
- 1
资源评论
matt0614
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功