一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jacob、poi、java2word、itext。jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加了程序的复杂度。java2doc 是对 jacob 的封装,同样放弃!最后选定了用itext来导出word,网上一些资料说itext导出word功能太简单,通过试用之后,封装工具类,使用起来确实挺方便,但是导出的word文档在细节方面很难达到要求,比如:字体、行距、字体间距、首行缩进等。
二、由于itext导出的word有各种各样的小问题,只能另找其他的解决方案,经过一个朋友推荐,可用PageOffice组件来导出word,其效果能与用户需求的word文档达到完美的一致,而且编程接口简单,调用很方便。总的来说就是制作模板(用PO_开头的书签作为数据占位符),然后编程调用PageOffice接口用真实数据替换模板中的占位符,最后生成word。下面看例子:
1. 制作模板
打开word模板插入书签:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示
2. 编写代码
调用PageOffice接口,给word模板填充数据生成word文档:
1 // 声明变量存储从数据库中读取的数据 2 String docName = "", docDept = "", docCause = "", docNum = "", docDate = ""; 3 // 数据库数据读取操作(不同的数据库用不同的代码) 4 ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id); 5 if (rs.next()) { 6 docName = rs.getString("Name"); 7 docDept = rs.getString("Dept"); 8 docCause = rs.getString("Cause"); 9 docNum = rs.getString("Num"); 10 docDate = rs.getString("SubmitTime"); 11 } 12 rs.close(); 13 //创建PageOffice的WordDocument对象,操作Word文件 14 WordDocument doc = new WordDocument(); 15 doc.openDataRegion("PO_name").setValue(docName); 16 doc.openDataRegion("PO_dept").setValue(docDept); 17 doc.openDataRegion("PO_cause").setValue(docCause); 18 doc.openDataRegion("PO_num").setValue(docNum); 19 doc.openDataRegion("PO_date").setValue(docDate); 20 //创建PageOfficeCtrl对象打开文件 21 PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request); 22 poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须 23 //获取数据对象 24 poCtrl1.setWriter(doc); 25 // 打开文档 26 poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
3. 生成效果图
三、 源码下载
https://download.csdn.net/download/zi_wu_xian/10399345
相关推荐
Java调用PageOffice生成Word是一项常见的技术应用,主要用于在服务器端动态创建和编辑Microsoft Office文档。PageOffice是一款专为Java设计的Office文档处理组件,它提供了丰富的API接口,使得开发者可以方便地在...
以上是基于Java调用PageOffice的基本步骤和常见操作。在实际开发中,可以根据需求进行更复杂的组合和扩展,如批量处理文档、生成报表等。PageOffice提供的API非常丰富,能够满足大部分文档处理的需求,是Java开发中...
在Java软件开发中,生成Word文档是一项常见的任务,特别是在需要批量生成正式文件或者根据数据库数据动态填充内容的场景。然而,传统的Apache POI库虽然强大,但在处理复杂的Word格式和排版时可能会变得较为繁琐。...
3. **加载文档**: 通过JavaScript调用PageOffice API,加载需要编辑的Word文档。这一步通常涉及到文件的URL路径或者流数据。 4. **用户编辑**: 用户在浏览器中看到的Word文档是PageOffice组件在服务器端模拟生成的...
VUE动态生成Word文档的实现是一个涉及前端技术与文档处理技术的复杂过程,适用于Web开发领域中对文档生成功能的需求。通过使用Vue.js框架,开发者可以利用其响应式和组件化的特点,轻松构建出动态的用户界面。结合...
Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
Apache POI是一个流行的Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,包括Word文档。 首先,你需要理解Apache POI的工作原理。Apache POI提供了一组API,可以用来操作Word文档的各个元素,如...
调用PageOffice还可以实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
在Struts的JSP视图中,使用PageOffice提供的JavaScript函数来调用相应的功能。例如,使用`PO.CreateDoc`方法打开一个文档,`PO.SaveDoc`方法保存文档。 **步骤4:服务器端处理** 当用户保存文档时,服务器端需要...
PageOffice是一款专业的Java控件,它使得Java开发者能够轻松地在Web应用中集成微软Office的各种功能,例如创建、编辑、预览和打印Word、Excel、PowerPoint等文档。这款控件为开发者提供了一种高效、稳定且跨平台的...
Java篇中,主要阐述了PageOffice集成说明,动态生成Word文件的方法,以及如何在Maven项目中引用FileMaker组件。***篇则详细说明了如何在***环境中集成PageOffice,动态生成Word文档以及FileMaker组件的功能简介。 ...
- **PageOffice 客户端js开发帮助.url**:指向客户端JavaScript开发文档,涉及如何在前端页面中调用PageOffice的JS函数,实现文档的打开、编辑、保存等功能。 - **Springmvc4.0Demo**:这是样例项目的源代码,包含...
PageOffice是一个专门针对Java开发的Office组件,它与Apache POI类似,但提供了更高级的功能,如在线编辑Office文档并实时保存回服务器,支持Web环境下直接生成和编辑Word、Excel和PPT文件。 PageOffice支持在Web...
【Java导出格式文档】与【PageOffice实现动态生成Word】技术详解 在Java开发中,经常需要将数据导出成各种格式的文档,以便进行更直观的数据分析和报告展示。PageOffice是一款强大的Web办公组件,它允许开发者通过...
在Java编程环境中,打印Word文档是一项常见的任务,尤其在企业级应用中,如报表生成、文档处理等场景。本文将深入探讨如何通过Java实现这一功能,主要基于提供的资源`doumentWord.java`。 首先,Java中没有内置的库...
Page类可能负责渲染前端视图,而Controller类则接收HTTP请求,调用服务层方法生成Word文档,并返回给前端或者直接保存到服务器。 7. **安全性与性能**:在处理大量数据或并发请求时,要注意内存管理和性能优化。...
在Java开发环境中,Aspose库提供了一系列API,允许开发者无需借助Microsoft Office或其他第三方软件,就能直接操作和生成这些文档。本篇文章将深入探讨如何利用Aspose对模板进行Word和PDF的生成。 首先,我们需要...
java后端源码部署 kkFileViewOfficeEdit 对 进行了二次开发。整合了openOffice进来,项目体积更大了!但使用和配置更简单,只需要配置redis即可 ...PageOffice V4.0 标准版试用序列号:IMTG6-BSXJ-J
通过jacob,开发人员可以在Java环境中轻松地操作Word、Excel等Office应用程序,实现自动化办公文档处理的需求。 #### 添加页脚的需求背景 根据描述,“可以给Word文档使用jacob控件来添加页脚,然而使用jacob来...