package org.cnzjw.word1;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
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 WordHandler {
private Configuration configuration = null;
public WordHandler() {
configuration = new Configuration();
configuration.setDefaultEncoding("UTF-8");
}
public void data2word() {
// 要填入模本的数据文件
Map<String, Object> dataMap = new HashMap<String, Object>();
getData(dataMap);
// 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以servlet,classpath,数据库装载,
// 这里我们的模板是放在org.cnzjw.template包下面
configuration.setClassForTemplateLoading(this.getClass(),
"/org/cnzjw/template");
Template t = null;
try {
// word1.ftl为要装载的模板
t = configuration.getTemplate("word1.ftl");
} catch (IOException e) {
e.printStackTrace();
}
// 输出文档路径及名称
File outFile = new File("D:/outword1.doc");
Writer out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outFile)));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
try {
t.process(dataMap, out);
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 注意dataMap里存放的数据Key值要与模板中的参数相对应
*
* @param dataMap
*/
private void getData(Map<String, Object> dataMap) {
List tbs = new ArrayList();
for (int j = 0; j < 3; j++) {
Table tb = new Table();
tb.setNo("1." + j);
tb.setTb_name("T_SYS_USER" + j);
tb.setTb_comment("系统用户表" + j);
List cols = new ArrayList();
for (int i = 0; i < 5; i++) {
Col col = new Col();
col.setCol_name("ID" + i);
col.setCol_comment("序号" + i);
col.setCol_datatype("VARCHAR2(20)");
col.setP_enable("Y");
col.setM_enable("Y");
col.setF_enable("N");
col.setU_enable("N");
col.setC_enable("N");
cols.add(col);
}
dataMap.put("cols", cols);
List idxs = new ArrayList();
for (int i = 0; i < 2; i++) {
Idx idx = new Idx();
idx.setContents("CREATE INDEX index_name" + i
+ " on table_name (col_name" + i + ")");
idxs.add(idx);
}
dataMap.put("idxs", idxs);
tbs.add(tb);
dataMap.put("tbs", tbs);
}
}
public static void main(String[] args) {
WordHandler wh = new WordHandler();
wh.data2word();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Java根据ftl模板生成多表格复杂性word文档
共9个文件
java:4个
jar:1个
classpath:1个
5星 · 超过95%的资源 需积分: 12 191 下载量 106 浏览量
2014-12-09
09:14:06
上传
评论 1
收藏 788KB ZIP 举报
温馨提示
Java根据ftl模板生成多表格复杂性word文档,工程可直接导入eclipse中执行的。
资源推荐
资源详情
资源评论
收起资源包目录
data2word.zip (9个子文件)
data2word
bin
.settings
org.eclipse.core.resources.prefs 124B
src
org
cnzjw
word1
Idx.java 218B
Col.java 2KB
WordHandler.java 3KB
Table.java 512B
template
word1.ftl 49KB
.project 386B
.classpath 296B
lib
freemarker-2.3.13.jar 850KB
共 9 条
- 1
资源评论
- 菜鸟阿飞2016-11-07还不错,能使用
- ZFiori_Studio2017-09-05挺不错的,也很详细。可惜不是我想要的,进来学习,增长知识。
- Cgxh2016-12-27进来学习,增长知识
- bobsanjin2016-09-01挺不错的,也很详细。可惜不是我想要的
JavisZ
- 粉丝: 4
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功