一、在开发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
相关推荐
本文档主要介绍了如何使用 PageOffice 在 JAVA 中动态导出 Word 文档,实现动态生成 Word 文档的功能。该功能可以应用于软件开发中,例如生成正式文件、报告、协议等。 PageOffice 是一个功能强大且灵活的office...
附带的资源中,`PageOffice 客户端js开发帮助.CHM`提供了客户端JavaScript API的详细文档,可以帮助开发者更好地理解和使用PageOffice的客户端功能。`安装说明.txt`提供了安装和配置PageOffice的指南,`PageOffice ...
首先,要使用PageOffice,你需要在服务器端进行必要的配置。这包括安装PageOffice的服务器端程序,并在Web项目的"WebRoot/WEB-INF/lib"路径下添加`pageoffice.cab`和`pageoffice.jar`文件。这些文件可以从...
Java对PageOffice编程,从空白的word模板动态生成word文件,填充文本内容、图片,同时设置文本的字体、段落、格式。 PageOffice是标准Java组件,标准JSP Tag标签方式引用,完美支持Eclipse、MyEclipse等开发工具。 ...
要使用PageOffice,首先需要实例化一个PageOfficeController对象,这是所有操作的基础。例如: ```java POControllor poCtrl = new POControllor(request); ``` 3. **打开文档** 使用`openDoc`方法打开一个...
而"wordonline"可能是示例代码或相关资源,用于演示如何在Java项目中集成和使用PageOffice进行在线编辑Word文件。 总的来说,Java在线编辑保存Word文件涉及的技术主要包括Java Web开发、前端JavaScript交互以及Page...
4. **生成Word文件**:使用Apache POI,打开Word模板文件,然后遍历模板中的每一段内容,如果遇到Freemarker的占位符,就用数据模型中的对应值替换。完成后,保存生成的Word文件。 5. **处理复杂结构**:在某些情况...
6. 生成Word文档:在服务器端,我们可以使用诸如docxtemplater这样的库,根据接收到的表单数据填充预设的Word模板,从而生成Word文档。这个过程涉及到对Word文档格式的解析和内容的动态替换。 7. 下载Word文档:...
3.写java程序根据模板生成word 总结,之前在网上查到这个资料怎么调试都失败,后来经过反复查找发现是编码问题导致生成word格式错误,已经修正,希望能给大家带来帮助。 效率测试生成100000行数据大概4000毫秒...
Apache POI是一个流行的Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,包括Word文档。 首先,你需要理解Apache POI的工作原理。Apache POI提供了一组API,可以用来操作Word文档的各个元素,如...
以生成工资条为例,演示了通过PageOffice开发平台,用Java语言实现Word文档的在线打开、编辑和保存,数据区域数据的动态填充和提交,数据区域插入Word文件,动态填充和提交Word文件中Tabel的数据
Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
Java语言利用POI读取excel文档,利用Freemarker建立word模板(带图片),excel每一行数据生成单个word文档,再利用POI合并成一个word文档(源码); 博客地址:...
调用PageOffice还可以实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
PageOffice是一款专为Java开发设计的控件,它使得开发者能够在Java应用程序中无缝集成Microsoft Office的功能,例如编辑、查看和创建Word、Excel、PowerPoint等文档。这款控件平台极大地扩展了Java在处理Office文档...
1. **直接操作Word、Excel、PowerPoint**:使用PageOffice,开发者可以直接在浏览器中编辑和保存Office文档,用户无需安装任何额外软件,只需一个兼容的Web浏览器即可。 2. **实时预览**:支持文档的实时预览功能,...
总结一下,本文主要介绍了如何使用PageOffice组件在Java环境中,不依赖JXL和POI,自动生成Excel表格。通过步骤化的示例,我们展示了如何创建一个新的Excel文件,并在其中填充数据,包括标题和具体的数据项。这为...
- **生成HTML页面**:在前端创建HTML页面,使用PageOffice提供的JS函数启动在线编辑。 - **数据交互**:处理服务器与客户端的数据交换,如上传的文档内容、保存的文件路径等。 **5. 功能实现** PageOffice4_...
在开发过程中,使用PageOffice_4.2.0.2_Java这个压缩包,你将获得一个完整的工具集,帮助你更高效地实现上述功能。PageOffice是一个专门针对Java开发的Office组件,它与Apache POI类似,但提供了更高级的功能,如...