`
lovexz365
  • 浏览: 108044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Xml+Freemarker 导出word 方法

    博客分类:
  • java
 
阅读更多
    前段时间项目中要求导出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。本人没有解决这个问题。希望哪位大侠解决了给回个帖,谢谢!
分享到:
评论
12 楼 curly361907587 2013-09-10  
lovexz365 写道
关于默认 为xml 的格式我们可以添加cdata标签处理,这样下载下来的就成为了默认为word的文件了
<w:t><![CDATA[${columnEntity.entity.aliasName!columnEntity.entity.name}]]></w:t>
所有变量地方都用cdata标签来处理就OK了

有表格,,怎么办啊
11 楼 yishulin_0 2012-10-09  
怎么让它导出来的时候显示成正常的啊。。我的打开是标签。。
10 楼 渤海小丑鱼 2012-10-09  
楼主请教一下,如何实现换页啊,比如我这个表格的数据填充满了,填充下个表格的时候,必须在下一页开始哈
9 楼 chenjinboeye 2012-07-10  
额,我自己解决了不用了
8 楼 chenjinboeye 2012-07-10  
通过流的方式write到前端,是不是先把word文档保存到本地,再让客户端下载。如果不是如何操作能不能把实例代码发给我,谢谢!邮箱:chenjinbo32@163.com
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格式的
6 楼 sparrow1314 2012-05-30  
能不能给个 下载下来默认是word文件的模板,谢谢!邮箱:809993607@qq.com
5 楼 lovexz365 2012-05-01  
关于默认 为xml 的格式我们可以添加cdata标签处理,这样下载下来的就成为了默认为word的文件了
<w:t><![CDATA[${columnEntity.entity.aliasName!columnEntity.entity.name}]]></w:t>
所有变量地方都用cdata标签来处理就OK了
4 楼 linyuzhu 2012-03-29  
楼主是怎么解决超链接和多层次目录的,细谈企鹅785394821
3 楼 cgdon 2012-03-28  
另存为时,默认为xml,那是因为,你生成的文件本质上是一个xml文档,可以用文本编辑器打开的,只是你给生成的文件改了后缀而已。它本质上还不是一个word文档,只是一个假象,让你以为是一个word文档,如果新建一个word文档,是不可能用文本编辑器打开的,如果强制打开也肯定是乱码,所以需将将生成的文件再转换成word,具体怎么转换,我还在研究中。。。
2 楼 lovexz365 2011-11-02  
呵呵,不好意思, 那里不清楚,可以留言,有问题可以切磋切磋,呵呵,QQ:505712018
1 楼 util198 2011-10-26  
有点不清楚

相关推荐

    java web+freemarker导出word

    java web+freemarker 导出word 单个字符串${name}, 列表&lt;#list tail as item&gt; ${item.id} ,附有源码,导出word的word模板 以及另存为的xml文件和 ftl模板,只需要改下里面的查询数据库即可

    freemarker 导出word表格

    总结,FreeMarker导出Word表格的核心在于理解XML结构,创建FreeMarker模板,以及正确地绑定数据。这个方法的好处是可以将格式设计与数据分离,使得数据的更新和格式的维护变得更加灵活和高效。在处理大量数据的导出...

    java freemarker导出word -包含多张图片导出

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    java利用FreeMarker导出word

    Java利用FreeMarker导出Word是一项常见的技术需求,尤其在企业级应用中,常常需要将动态数据生成为Word文档,例如报告、合同等。FreeMarker是一个模板引擎,它能将Java对象的数据绑定到模板上,生成HTML、XML或者如...

    freemarker模板导出word循环图片表格源码和详细教程

    在本教程中,我们将探讨如何利用Freemarker模板来导出Word文档,并实现循环插入图片和表格的功能。这对于需要批量生成定制化报告或者文档的应用场景非常有用。 首先,我们需要了解Freemarker的基本语法。在...

    freeMarker导出word两种方式最全代码样例.rar

    本示例主要探讨了使用FreeMarker导出Word的两种方法:通过生成XML模板和通过HTML模板直接导出。 1. **生成XML方式模板并附带图片导出** 在这种方法中,首先我们需要创建一个XML模板,该模板定义了Word文档的结构和...

    Java 用Freemarker导出word文档总结

    在Java中利用FreeMarker导出Word文档,可以极大地提高代码的可维护性和灵活性。 首先,我们需要了解FreeMarker的基础知识。FreeMarker是一个基于模板的视图技术,它将数据模型和视图模板分离,使得开发者可以专注于...

    Java用freemarker导出word例子

    在Java中,我们需要以下步骤来使用`Freemarker`导出Word: 1. **配置Freemarker**: 首先,你需要添加`freemarker`的依赖到项目中,通常是在`pom.xml`中添加Maven依赖或在`build.gradle`中添加Gradle依赖。然后,...

    Maven+Spring+SpringMVC+MyBatis+FreeMarker模版下载为Word的Demo

    开发者可以编写FreeMarker模板文件,其中包含动态内容和静态内容的组合,FreeMarker会根据后台提供的数据填充模板,生成最终的Word文档。 6. "word下载"标签: 这个标签表明该Demo的重点是将Web应用中的数据以Word...

    java使用freemarker模板技术导出word

    Java 使用 FreeMarker 模板技术导出 Word 是一种常见的数据动态生成文档的方法,它结合了 Java 的编程能力和 FreeMarker 模板引擎的强大功能,能够帮助开发者高效地生成结构化的 Word 文档。FreeMarker 是一个开源的...

    java freemarker 导出 word

    以上就是使用Java FreeMarker导出Word文档的基本流程。实际应用中,你可能需要处理更复杂的模板,包括表格、列表、图片等,以及更丰富的数据模型。FreeMarker的强大之处在于它的灵活性,可以根据具体需求定制模板,...

    生成WORD freemarker导出WORD

    总结来说,“生成WORD freemarker导出WORD”项目提供了一种利用FreeMarker模板和Apache POI库生成Word文档的方法,解决了在实际开发中遇到的难题。通过学习和实践这个项目,开发者可以掌握动态生成Word文档的技术,...

    一个freemarker导出word的通用包

    "一个freemarker导出word的通用包"就是解决这个问题的一个实用工具。这个工程利用了FreeMarker模板引擎,它是一个强大的、轻量级的、基于Java的模板语言,用于生成动态HTML、XML、PDF或其他格式的文本输出。以下是...

    使用freemarker 导出word供别人下载

    本示例将详细讲解如何使用Freemarker来导出Word文档,并提供供他人下载的功能。 首先,理解Freemarker的核心概念。Freemarker是一个基于模板的Java库,它与后台数据模型结合,用于生成输出文本。模板是包含动态内容...

    Java用freemarker导出word文档

    `Java用freemarker导出word文档`这个主题涉及到的技术点主要包括Java的Freemarker模板引擎和处理Word文档的相关库。Freemarker是一个强大的、基于模板的生成器,广泛用于Web应用中的动态HTML生成。在这里,它被用来...

    freemarker 导出word

    以上就是使用FreeMarker导出Word文档的关键步骤和涉及的技术点。在实际项目中,还需要考虑性能优化、错误处理、模板的复用和管理等方面的问题。通过熟练掌握这些知识点,你可以轻松地构建一个高效且灵活的Word文档...

    使用FreeMarker实现导出word实例

    在本例中,我们将探讨如何利用FreeMarker来实现Word文档的导出。FreeMarker的工作原理是,它将数据模型与模板结合,生成最终的输出文档。在Java应用中,这通常涉及创建一个FreeMarker配置对象,加载模板文件,设置...

    freemarker导出Excel、Word、HTMLdemo

    - 使用Freemarker导出Excel通常涉及到Apache POI库。首先,你需要创建一个Freemarker模板文件,定义好表格的结构和样式,然后将Java对象的数据填充到模板中。 - 创建`ftl`文件,例如`excel.ftl`,设置表格行、列的...

Global site tag (gtag.js) - Google Analytics