最近做的项目,需要将一些信息导出到word中。在网上找了好多解决方案,现在将这几天的总结分享一下。

目前来看,java导出word大致有6种解决方案:

1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。该方案只能在windows平台实现,是其局限性。

2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。

3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据 ,1.1版增强的功能: 指定文本样式,指定表格样式。如此,则可动态排版word文档。是一种不错的解决方案。

4:iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。功能强大。

5:JSP输出样式,该方案实现简单,但是处理样式有点缺陷,简单的导出可以使用。

6:用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。

综合以上资料的参考,和网上的一些意见,最后我选择了,第6种用xml做导出方案。

下面是基本的例子,以实现简单的word导出:

要导出的word模板的内容,启动拼音部分为要在代码种替换的部分。

然后将word另存为.xml文件,打开文件,找到title将其修改为${title},后面要替换的内容依次替换掉。然后将.xml文件后缀改为.ftl,导入.ftl模板文件到指定目录。加载jar包freemarker.jar。开始写代码:

主要代码:

修改.ftl文件,找到列表所在位置,将其要加入的列表加入到文件中。在列表前加入(在它的头上加一个),并在结尾加上#list>。修改list内容,在要输出的名字前面加上l.。如xuehao,修改为l.xuehao。这样有点像EL表达式的使用。

java 桥 word_java导出word的6种方式(转发)相关推荐

  1. 导出Word的两种方式

    导出Word有两种方式,分别是前端和后端 这两种方式在实际开发中根据实际需要会选择不同的方式 方式对比: 前端导出: 优点:简单,快捷,对于样式的设定也比较方便 缺陷:只可以导出本页展示的数据,导出的 ...

  2. java导出word的几种方式

    目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...

  3. java导出word纸张方向_java导出word的几种方式

    目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...

  4. java_导出_word_[转载]java导出word的5种方式

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下.总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Ja ...

  5. Java使用freemarker导出word试卷

    使用了freemarker模板填充占位符的方式来生成word文档,支持跨平台. Java导出Word的五种方式 制作Word模板 将制作好的Word模板.docx另存为.xml格式,修改xml文件的内 ...

  6. Java使用XDocReport导出Word(带图片)

    XDocReport导出Word 简介 示例 实现方式 Maven依赖 Word模板制作 Word模板文字(四步) Word模板图片(五步) 具体实现 注意事项 结论 简介 这次的内容是关于Java实 ...

  7. java使用freemarker导出word标题失效问题

    java使用freemarker导出word标题失效问题 如图,导出格式错误切目录不可折叠 另存为xml发现 六级标题变成了其他级别:<w:pStyle w:val="60" ...

  8. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

  9. 导出excel的两种方式

    引言 导出excel就是将后台的数据在数据库中查找出来,然后再将数据存放进excel表格中,这种操作多用于一些统计表中,将table中的数据导出来,存放进excel表格中.(最近在将手机中的短信往电脑 ...

最新文章

  1. 蓝光模式引爆欧洲杯 神马搜索陪你度过激情夏日
  2. 新手站长们如何利用10分钟的时间内多写高质量的原创量?
  3. BZOJ.1032.[JSOI2007]祖码(区间DP)
  4. Linux基础-yum软件包管理
  5. python新闻推荐系统_python实现推荐系统(一)
  6. 让ModalPopupExtender的控制控件能响应服务器事件
  7. Linux 内存机制
  8. apigee 安装_APIGEE – API网关简介
  9. Winfrom窗体应用程序___DataGridView
  10. java import的作用_Java技术_Java千百问(0030)_package和import作用是什么
  11. HDFS原理(超详解)
  12. 【王佩丰】PowerPoint2010视频教程 1
  13. CAD椭圆怎么画?CAD椭圆绘制步骤
  14. 游戏APP推荐,快来开启游戏时间
  15. 文字识别(四)--大批量生成文字训练集
  16. python十进制转化为二进制
  17. 用requests的get检验电视直播源是否有效的方法
  18. 新IT:催生教育新世界
  19. 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场
  20. Excel中计算时间差

热门文章

  1. java vote_vote投票系统java jsp mysql
  2. mysql数据库进阶_MySQL T2-数据库进阶?
  3. Johnny and Another Rating Drop CodeForces - 1362C(规律)
  4. Sequence II HDU - 5919(主席树)
  5. hdu 1418(不相交的曲线分面)
  6. 微信小程序部分功能介绍和实现
  7. Spring对java模块化支持_Spring项目对JDBC的支持和基本使用
  8. activiti高亮显示图片_第 09 篇:让博客支持 Markdown 语法和代码高亮
  9. 图神经网络(一)图信号处理与图卷积神经网络(5)图卷积神经网络
  10. 深度学习之循环神经网络(11-b)GRU情感分类问题代码