在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下。总的来说,java导出word大致有5种解决方案:
1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。
优点:调用微软Office的COM接口,生成的word文件格式规范。
缺点:服务器只能是windows平台,不支持unix和linux,且服务器上必须安装微软Office。
2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。
优点:跨平台支持windows、unix和linux。
缺点:相对与对word文件的处理来说,POI更适合excel处理,对于word实现一些简单文件的操作凑合,不能设置样式且生成的word文件格式不够规范。
3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。
优点:足够简单,操作起来要比FreeMarker简单的多。
缺点:没有FreeMarker强大,不能够根据模版生成Word文档,word的文档的样式等信息都不能够很好的操作。
4:FreeMarker生成word文档的功能是由XML+FreeMarker来实现的。先把word文件另存为xml,在xml文件中插入特殊的字符串占位符,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板,编码调用FreeMarker实现文本替换并输出Doc。
优点:比Java2word功能强大,也是纯Java编程。
缺点:生成的文件本质上是xml,不是真正的word文件格式,有很多常用的word格式无法处理或表现怪异,比如:超链、换行、乱码、部分生成的文件打不开等。
5:PageOffice生成word文件。PageOffice封装了微软Office繁琐的vba接口,提供了简洁易用的Java编程对象,支持生成word文件,同时实现了在线编辑word文档和读取word文档内容。
优点:跨平台支持windows、unix和linux,生成word文件格式标准,支持文本、图片、表格、字体、段落、颜色、超链、页眉等各种格式的操作,支持多word合并,无需处理并发,不耗费服务器资源,运行稳定。
缺点:必须在客户端生成文件(可以不显示界面),不支持纯服务器端生成文件。
综合以上资料的参考,和网上的一些意见,最后选择了,第5种用PageOffice做导出方案。
下面是基本的例子,以实现简单的word导出:
读取数据库表中的信息记录填充到一个请假条的模板中,替换“部门、姓名、原因、天数、日期”几个数据位置的文本内容。
主要代码:
// 声明变量存储从数据库中读取的数据 String docName = "", docDept = "", docCause = "", docNum = "", docDate = ""; // 数据库数据读取操作(不同的数据库用不同的代码) ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id); if (rs.next()) { docName = rs.getString("Name"); docDept = rs.getString("Dept"); docCause = rs.getString("Cause"); docNum = rs.getString("Num"); docDate = rs.getString("SubmitTime"); } rs.close(); //创建PageOffice的WordDocument对象,操作Word文件 WordDocument doc = new WordDocument(); doc.openDataRegion("PO_name").setValue(docName); doc.openDataRegion("PO_dept").setValue(docDept); doc.openDataRegion("PO_cause").setValue(docCause); doc.openDataRegion("PO_num").setValue(docNum); doc.openDataRegion("PO_date").setValue(docDate); //创建PageOfficeCtrl对象打开文件 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须 //获取数据对象 poCtrl1.setWriter(doc); // 打开文档 poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
生成的文件效果:
相关推荐
首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java程序员创建、修改和显示Microsoft Office格式的文件,包括Word(.doc和.docx)。...
这个项目可能包括了构建文件(如pom.xml)、源代码文件(如JavaWord.java)以及其他必要的配置。 标签中的"java导出word文档"、"jacob word导出"和"word导出图"暗示了这个项目可能还涵盖了在Word文档中插入图片的...
在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...
本文将探讨如何使用Java高效地实现Word文档导出,主要聚焦于利用XDocReport和FreeMarker模板引擎的方式。 首先,Java中导出Word文档有多种途径,包括: 1. **Hutool的Word工具类**:这是一个简洁易用的Java工具库...
java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
Java使用Apache POI库导出Word文档是一种常见的技术实践,特别是在企业级应用中,用于生成报告、合同或者自定义的数据输出。Apache POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式(如Word...
在Java编程环境中,导出Word文档是一项常见的任务,特别是在企业级应用中,如报表生成、数据导出等。本主题将深入探讨如何使用Java来创建和导出Word文档,以及可能涉及的相关工具。 首先,Java中导出Word文档通常会...
在Java编程中,生成Word文档是一项常见的需求,例如在企业级应用中用于生成报告、合同或者数据导出等。这个实例将带你了解如何在Java环境中使用API来创建和导出Word文档。以下是一些关键的知识点: 1. **Apache POI...
在Java编程环境中,导出Word文档并插入图片是一项常见的任务,尤其在自动化报告生成、数据可视化或文档处理的场景中。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要一个能够操作Word文档的库。Apache ...
在"java poi导出word"这个场景中,我们主要关注的是如何使用Java POI来创建和编辑Word文档。下面将详细介绍如何利用Java POI实现这些功能,并提供一些关键知识点。 1. 文字与段落: 在Java POI中,我们可以使用...
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
Java导出Word模板技术主要涉及的是在编程环境中利用特定库生成动态文档的能力。在这个场景中,我们看到一个道路案卷管理系统的例子,其中涉及到的数据字段是通过Java代码动态填充到Word模板中的。以下是对这个话题的...
java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...
Java 导出Word文档是一项常见的任务,特别是在企业级应用中,比如报告生成、合同模板等。本教程将重点介绍如何利用Freemarker技术实现这一功能,特别是如何将Word模板转化为可编程填充的数据模板。 首先,让我们...
在Java编程环境中,导出Word文档是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。Apache POI库是Java开发者用来处理Microsoft Office格式文件(如Word、Excel)的一个强大工具,尤其在读取...
java导出到word,进行写操作,如表格、生成图片等.
Java导出Word的插件是一种在Java应用程序中用于创建、编辑和导出Microsoft Word文档的工具。这种插件使得开发者能够方便地在Java环境中处理Word文档,而无需直接使用Microsoft Office套件。以下是对这个主题的详细...
在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报告生成、数据导出等。本实例将介绍如何使用Java来创建和导出Word文档,以满足这些需求。 首先,我们需要了解Java中用于处理Word文档的...
Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位。在处理文件导出,尤其是办公文档如Word、Excel、PDF和TXT时,Java提供了多个库来帮助开发者实现这些功能。本教程将详细介绍如何使用...