一、 需求背景
在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印。此需求可以通过用程序填充数据到word模板中来实现。所谓模板也就是标记了数据位置的Word文件。模板可以简单的分为两种:一种模板包含了固定的、有限个数的数据位置,比如一个请假条的模板中只有“部门、姓名、原因、天数、日期”几个数据位置,也可能是这5个数据位置中的某4个、某3个或某1个,但模板中的标签数量总是这个集合的子集(如下图所示:);另一种是包含了循环数据的,比如要生成一个员工信息表,这个表格中有不定个数的员工信息,每个员工的信息都包含了“编号、部门、姓名、年龄、籍贯”。第一种模板导出word文件相对比较简单,在本文中先描述此方案的实现方法。
不显示图片可参见:http://blog.51cto.com/11430719/2112360
二、 实现方法
1. 编辑模板:模板中必须标记好数据要插入的位置,这样才可以实现用程序插入数据到文件的相应位置,就是说要想生成文件,数据的位置必须用某种元素来标记出来。使用PageOffice填充数据到word文件,需要用Word书签来标记要插入数据的位置。先在Word模板中标记好“部门、姓名、原因、天数、日期”几个数据位置:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示:
不显示图片可参见:http://blog.51cto.com/11430719/2112360
一般的开发人员使用Word比较少,可能不清楚Word书签是怎样插入的,下面简单的介绍一下插入书签的方法。
第一种方法:把光标定位到需要标记数据位置的地方,点Word菜单中的“插入”-“书签”,就会弹出一个标题为“书签”的对话框(如下图所示),输入新书签的名称,注意:书签名必须以字母、汉字、中文标点等开头,可以包含数字但中间不能有空格(用PageOffice开发的时候不推荐使用中文命名书签名)。点右侧的“添加”按钮,新的书签名将出现在下面的列表中。
第二种方法:选择几个文字、或一段文字、或者选择一段包含表格和图片的内容,为选中的内容指定书签的对象,然后执行第一种方法的同样操作,“插入”→“书签”……
注意:如果新插入位置或新对象采用的是已有的书签名,原有的书签将自动取消。
PageOffice示例代码中的模板在制作的时候,多采用第二中方法定义书签,插入书签之前会先写一个标示性的词语用中括号括起来,比如:[姓名],然后选中“[姓名]”,再插入书签。这样做的目的是便于在查看或编辑模板数据位置的时候一目了然。
在使用PageOffice开发的过程中,为了避免出现与用户自己定义的书签出现冲突,要求插入的书签名称必须以“PO”开头。注意是字母o,不是数字0。书签名是不区分大小写的也可以写成“po”。在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有“po_”开头的书签才叫数据区域,请注意这点。
2. 编写代码调用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
四、 示例下载
http://www.zhuozhengsoft.com/down4/Java/BigDemo/poword.rar,或者下载PageOffice for Java的开发包,查看开发包中的示例:三、5、请假条示例
- 大小: 18 KB
- 大小: 117.6 KB
- 大小: 77.8 KB
- 大小: 40.8 KB
分享到:
相关推荐
本文将详细讲解如何使用Java操作Word,特别是针对书签插值的方法,以及相关的技术和工具。 1. **Java操作Word的基本原理** Java操作Word主要依赖于第三方库,如Apache POI和JACOB。Apache POI是一个用于读写...
Java 操作 Word 文档,尤其是处理书签,是一种常见的需求,尤其在自动化报告生成或文档模板填充场景中。本文将详细介绍如何使用 Java 实现这一功能,避免依赖第三方库,如 Apache POI、java2word 或 jcob。 首先,...
java操作word 实现了三个功能:模板填充,模板数据提取,格式颜色验证,具体解压jar包WordTest实例,注意针对word2007以上,书签要对应
Java2Word是一个Java库,主要用于在Java应用程序中创建和编辑Microsoft Word文档。这个工具使得开发者能够在服务器端或者没有Microsoft Office安装的环境中处理Word文档,极大地扩展了Java在文档处理方面的功能。...
Java操作Word文件主要涉及到的是对Microsoft Office文档的处理,这在很多企业级应用中非常常见,比如自动化报告生成、数据导入导出等。在Java中,由于Java本身并不直接支持与Windows API交互,因此需要借助第三方库...
标题中的“Java转换成Word”指的是使用Java编程语言来生成或转换文档为Microsoft Word格式。在Java中,这个过程通常涉及到处理文本、样式、布局等元素,并将其转换为Word兼容的文档。以下是一些相关的重要知识点: ...
总结起来,Java操作Word文档主要依赖于像Jacob这样的第三方库,它提供了与Windows COM接口交互的能力。通过正确配置库文件和遵循上述步骤,开发者可以在Java程序中实现对Word文档的各种复杂操作。
在Java编程环境中,将Word文档转换为PDF是一项常见的任务,特别是在文档处理和自动化流程中。Aspose.Words是一个强大的第三方库,它提供了丰富的API来处理各种文档格式,包括Word(.doc, .docx)和PDF。本篇文章将...
本项目“java将word转图片转pdf_jacob.zip”是关于利用Java进行文档格式转换的一个实例,主要涉及的技术点包括Java与Microsoft Office文档的交互以及图片和PDF的生成。 首先,我们需要了解Java中的Jacob库。Jacob...
Java操作Word的POI库是Apache软件基金会的一个开源项目,主要设计用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint。在这个场景下,我们关注的是如何使用POI库来读取、创建和修改Word文档。下面将...
Java操作word转PDF需要下载Jacob包.
Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word...
OpenOffice的Java API(称为JODConverter)能够方便地进行文件转换操作。JODConverter是基于LibreOffice的,因此在进行转换时,你需要先在系统中安装LibreOffice或OpenOffice,因为它们提供了底层的文档处理功能。 ...
在本例中,Jacob是连接Java和Microsoft Office的桥梁,使得Java代码能够操作Word对象模型,创建、修改Word文档。Jacob提供了一种方式来与Word交互,如打开、修改、保存和创建新的Word文档。 `Java2Word.jar`则是...
1. **Java操作Word文件**: - **Apache POI**:这是最常用的Java库,用于读写Microsoft Office格式的文件,包括Word(.doc, .docx)。Apache POI提供了一个强大的API,允许开发者创建、修改和展示Word文档内容。...
"java+pdf转word+word转pdf 无水印 无页数限制"这一标题揭示了我们讨论的是一个能够进行这两种转换,并且在转换过程中不添加水印,且不受页面数量限制的解决方案。以下是对这个主题的详细知识点解释: 1. **PDF转...
java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...
7. **兼容性**:由于是基于Java开发,Java2Word可以跨平台运行,无论是在Windows、Mac还是Linux操作系统上,只要有Java环境,都能正常使用。 为了使用Java2Word,用户需要先解压“Java2Word.rar”,然后根据提供的...