Xml+Freemarker 导出word 方法

前段时间项目中要求导出word文档,并且Word文档中显示的内容要有一定的格式,基本上就是Excel表格,不要问我为什么不导出Excel,因为业务需要。


在java中导出Excel的方式很简单,直接使用Apache 的 POI 就可以导出,同时POI以可以导出Word,但是没有操作Excel那样的方便。为了达到导出word文件的通用性,不采用第三方的工具,为此研究了下导出word的方法。直接使用Word来做一个模板然后结合Freemarker导出,具体步骤为:

1、使用Word制作一个你要导出文件的格式,我是导出表格。为此在word中制作了一个表格的样子,然后另存为Xml格式。
大家都知道XML我就不多说了,打开XML格式文件看看里面是不是乱麻麻的,不过别担心找到你要的那部分就可以了,先研究下标签的意思(这肯能要小花点时间哦,不要太急躁)

2、采用刚刚导出的XML 文件建立Freemarker模板文件 xxx.ftl 如果你不了解FreeMarker页没有关系,查下API就可以了,它提供了类似Jsp中Jstl的标签。
Freemarker很强大,它的主要思想就是 : 模板 + 数据 ,最后给你想要的结果,内容。它有好多的应用。可以仔细研究下,在这里就不多说...

3、有了FreeMarker模板里面的数据,在你学好Freemarker的例子后就知道怎么样把数据装到模板里了。最后用户在导出的时候,你就可以吧这个模板结合和你要写到模板中的数据一同的在后台通过流的方式write到前端了,注意在用户保存或下载的时候文件后缀存储为 .doc 这个大家都懂得,这样用户的Word软件就可以直接打开了.


说明一点:
在用户打开后,选择另存为时默认的格式任然为xml。本人没有解决这个问题。希望哪位大侠解决了给回个帖,谢谢!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值