科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > freemarker导出word模板
总共48085条微博

动态微博

查看: 2135|回复: 2

freemarker导出word模板

[复制链接]

38

主题

2

听众

547

金钱

四袋长老

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-08-04 11:51:07 |只看该作者 |倒序浏览
本帖最后由 阿杜 于 2015-8-4 11:55 编辑

一般通过java把想要的数据导出成word,需要先制作模板
工具有freemarker或velocity,相比之下感觉freemarker容易上手,操作简便

流程:
1、用word制作模板
   表格设置不可见,然后另存为xml格式
   用tepad++打开
   将xytitle替换为${xytitle}
   <#list></#list>对表格进行包括
   形如:<#list table1 as plan1><w:tr>题号 题目</w:tr><w:tr>选项</w:tr></#list>,
   然后在这其中找着对应的xzn,xztest,ans1,ans2,ans3,ans4替换为${plan1.xzn},${plan1.xztest},
   ${plan1.ans1},${plan1.ans2},${plan1.ans3},${plan1.ans4},注意这里的table1及plan1命名,
   table1后续填充数据要用到,其他的替换同理操作

2、保存后,修改后缀名为ftl,至此模板制作完毕。
3、编程:用到了freemarker-2.3.13.jar包
   然后是准备数据调用就行
   上面map中的key必须和模板中的对应,否则会报错


先用Word做一个模板,如下图:


(注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepad++,我这里用notepad++,主要是有高亮显示,和元素自动配对,效果如下:


上面黑色的地方基本是我们之后要替换的地方,比如xytitle替换为${xytitle},对已表格要十分注意,比如选择题下面的表格,我们可以通过<w:tr>查找来定位,一对<w:tr></w:tr>代表一行,也就是一条记录(一道题),我们这里要用一对<#list></#list>来将其包括,以便后续填充数据,具体可参照Freemarker页面语法,例如这里选择题,我们是两行为一条记录,所以要<#list></#list>要包括两行,形如:<#list table1 as plan1><w:tr>题号 题目</w:tr><w:tr>选项</w:tr></#list>,然后在这其中找着对应的xzn,xztest,ans1,ans2,ans3,ans4替换为${plan1.xzn},${plan1.xztest},${plan1.ans1},${plan1.ans2},${plan1.ans3},${plan1.ans4},注意这里的table1及plan1命名,table1后续填充数据要用到,其他的替换同理操作,得到效果如下:

保存后,修改后缀名为ftl,至此模板制作完毕。

freemarker-2.3.8.zip (732.03 KB, 下载次数: 8)




科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

已有 1 人评分帮币 收起 理由
admin + 5 神马都是浮云

总评分:  帮币 + 5         查看全部评分

admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    沙发
    发表于 2015-11-24 21:30:41 |只看该作者
    仔细 看了 一遍、项目中 也有类似的生成 试卷的 代码。 也是用了freemarker   LZ 也是做教育的?
    回复

    使用道具 举报

    4

    主题

    0

    听众

    320

    金钱

    三袋弟子

    该用户从未签到

    板凳
    发表于 2017-03-15 10:19:50 |只看该作者
    感觉很好用。最近我也做导出word,
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表