freemarker模板生成doc文档的数据如何循环到文档里?

o2_ 2014-01-25 02:00:05

如图,模板是个合同,红圈部分是要往进写入的数据,但是数据是数组形式,如何能够循环到doc里面?
下面是网上找的案例,如果SQL中查出一条记录可以按freemark标签添加参数,但是如果是多条记录该如何能循环到这个格式里呢?
	public static void creatWord() {
try {
//创建配置实例
Configuration cfg = new Configuration();
cfg.setDefaultEncoding("utf-8");
cfg.setDirectoryForTemplateLoading(new File("D:\\uploadFiles"));
cfg.setObjectWrapper(new DefaultObjectWrapper());

//获取模板
Template temp = cfg.getTemplate("test.xml");
temp.setEncoding("utf-8");

//创建数据模型
Map map = new HashMap();
map.put("content", "这是基于freemarker导出成word格式。包含图片");
map.put("userName", "吴亭");
map.put("age", "27");

//将模板和数据模型合并生成文件
File docFile = new File("D:\\uploadFiles\\test.doc");
Writer docout = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));
temp.process(map, docout);

} catch (Exception e) {
e.printStackTrace();
}
}

分数比较少,希望大神帮忙
...全文
260 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yj2335479 2014-01-28
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/yj2335479/6889413 我整理的,利用FreeMarker生成word文件例子
yj2335479 2014-01-28
  • 打赏
  • 举报
回复
freemarker模板生成doc文档,可以替换成RTF生成doc。后者利用openoffice支持性比较好,而且模板比较容易制作。
yj2335479 2014-01-28
  • 打赏
  • 举报
回复
对于Freemarker中如果使用HashMap(或SimpleHash)时候,如果HashMap的键值对(key,value)的value是普通的Scalar对象(String、Double等),此种情况下,对于ObjectWrapper可以直接使用DEFAULT_WRAPPER,在Freemarker模板文件中使用也相对简单,只需要采用如下方式即可: <#list scalarMap?keys as mykey> Scalar Map key is :${mykey} Scalar Map value is:${scalarMap[mykey]} </#list> 但如果Map的value是JavaBean对象(例如JavaBean为User,有userId和userName两个属性),如果需要在Freemarker模板文件中使用类似el表达式的方式获取JavaBean的属性值,也即:${testmap[key].userId},此种情况下不能采用缺省的DEFAULT_WRAPPER,需要使用ObjectWrapper.BEANS_WRAPPER。 当然如果在Freemarker模板文件中不需要获取JavaBean对象的属性值,也即只需要获取对象本身:${testmap[key]},则也可以不使用ObjectWrapper.BEANS_WRAPPER。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧