首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Xml+Freemarker 导出word 步骤

2012-10-14 
Xml+Freemarker导出word 方法前段时间项目中要求导出word文档,并且Word文档中显示的内容要有一定的格式,基

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。本人没有解决这个问题。希望哪位大侠解决了给回个帖,谢谢! 7 楼 sparrow1314 2012-05-30   xml 的格式我们lovexz365 写道关于默认 为xml 的格式我们可以添加cdata标签处理,这样下载下来的就成为了默认为word的文件了
<w:t><![CDATA[${columnEntity.entity.aliasName!columnEntity.entity.name}]]></w:t>
所有变量地方都用cdata标签来处理就OK了
我试了,不知道哪错了 导出的word 另存为还是xml格式的 8 楼 chenjinboeye 2012-07-10   通过流的方式write到前端,是不是先把word文档保存到本地,再让客户端下载。如果不是如何操作能不能把实例代码发给我,谢谢!邮箱:chenjinbo32@163.com 9 楼 chenjinboeye 2012-07-10   额,我自己解决了不用了

热点排行