`
zi_wu_xian
  • 浏览: 31573 次
社区版块
存档分类
最新评论

java调用PageOffice生成word

阅读更多

一、在开发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文档

    本文档主要介绍了如何使用 PageOffice 在 JAVA 中动态导出 Word 文档,实现动态生成 Word 文档的功能。该功能可以应用于软件开发中,例如生成正式文件、报告、协议等。 PageOffice 是一个功能强大且灵活的office...

    PageOffice Java开发 实现Word文件的批量生成

    附带的资源中,`PageOffice 客户端js开发帮助.CHM`提供了客户端JavaScript API的详细文档,可以帮助开发者更好地理解和使用PageOffice的客户端功能。`安装说明.txt`提供了安装和配置PageOffice的指南,`PageOffice ...

    JAVA不使用POI,用PageOffice动态导出Word文档[参考].pdf

    首先,要使用PageOffice,你需要在服务器端进行必要的配置。这包括安装PageOffice的服务器端程序,并在Web项目的"WebRoot/WEB-INF/lib"路径下添加`pageoffice.cab`和`pageoffice.jar`文件。这些文件可以从...

    Java编程生成word文件设置字体段落格式

    Java对PageOffice编程,从空白的word模板动态生成word文件,填充文本内容、图片,同时设置文本的字体、段落、格式。 PageOffice是标准Java组件,标准JSP Tag标签方式引用,完美支持Eclipse、MyEclipse等开发工具。 ...

    java调用PageOffice实例代码

    要使用PageOffice,首先需要实例化一个PageOfficeController对象,这是所有操作的基础。例如: ```java POControllor poCtrl = new POControllor(request); ``` 3. **打开文档** 使用`openDoc`方法打开一个...

    java在线编辑保存Word文件(支持跨浏览器)

    而"wordonline"可能是示例代码或相关资源,用于演示如何在Java项目中集成和使用PageOffice进行在线编辑Word文件。 总的来说,Java在线编辑保存Word文件涉及的技术主要包括Java Web开发、前端JavaScript交互以及Page...

    Java根据word 模板,生成自定义内容的word 文件

    4. **生成Word文件**:使用Apache POI,打开Word模板文件,然后遍历模板中的每一段内容,如果遇到Freemarker的占位符,就用数据模型中的对应值替换。完成后,保存生成的Word文件。 5. **处理复杂结构**:在某些情况...

    VUE动态生成word的实现

    6. 生成Word文档:在服务器端,我们可以使用诸如docxtemplater这样的库,根据接收到的表单数据填充预设的Word模板,从而生成Word文档。这个过程涉及到对Word文档格式的解析和内容的动态替换。 7. 下载Word文档:...

    freemarker模板技术生成复杂word文档---解决了编码问题

    3.写java程序根据模板生成word 总结,之前在网上查到这个资料怎么调试都失败,后来经过反复查找发现是编码问题导致生成word格式错误,已经修正,希望能给大家带来帮助。 效率测试生成100000行数据大概4000毫秒...

    JAVA WORD中实现电子印章效果 文字浮于印章上面

    Apache POI是一个流行的Java库,它允许开发者创建、修改和显示Microsoft Office格式的文件,包括Word文档。 首先,你需要理解Apache POI的工作原理。Apache POI提供了一组API,可以用来操作Word文档的各个元素,如...

    PageOffice Java 动态填充Word模版

    以生成工资条为例,演示了通过PageOffice开发平台,用Java语言实现Word文档的在线打开、编辑和保存,数据区域数据的动态填充和提交,数据区域插入Word文件,动态填充和提交Word文件中Tabel的数据

    Java生成excel表格设置公式并填充数据

    Java编程调用PageOffice实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...

    POI读取excel,利用Freemarker建立word模板(带图片),生成word文档,再合并成一个word文档(源码)

    Java语言利用POI读取excel文档,利用Freemarker建立word模板(带图片),excel每一行数据生成单个word文档,再利用POI合并成一个word文档(源码); 博客地址:...

    (简单)struts2下使用pageoffice实现文件在线编辑

    调用PageOffice还可以实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...

    基于Java的专业版集成微软OFFICE功能的Java控件平台PageOffice.zip

    PageOffice是一款专为Java开发设计的控件,它使得开发者能够在Java应用程序中无缝集成Microsoft Office的功能,例如编辑、查看和创建Word、Excel、PowerPoint等文档。这款控件平台极大地扩展了Java在处理Office文档...

    基于Java的源码-PageOffice专业的集成微软OFFICE功能的Java控件平台.zip

    1. **直接操作Word、Excel、PowerPoint**:使用PageOffice,开发者可以直接在浏览器中编辑和保存Office文档,用户无需安装任何额外软件,只需一个兼容的Web浏览器即可。 2. **实时预览**:支持文档的实时预览功能,...

    JAVA 无需JXL和POI用PageOffice自动生成Excel表格.docx

    总结一下,本文主要介绍了如何使用PageOffice组件在Java环境中,不依赖JXL和POI,自动生成Excel表格。通过步骤化的示例,我们展示了如何创建一个新的Excel文件,并在其中填充数据,包括标题和具体的数据项。这为...

    PageOffice4_Springmvc4.0Demo 样例

    - **生成HTML页面**:在前端创建HTML页面,使用PageOffice提供的JS函数启动在线编辑。 - **数据交互**:处理服务器与客户端的数据交换,如上传的文档内容、保存的文件路径等。 **5. 功能实现** PageOffice4_...

    office工具java

    在开发过程中,使用PageOffice_4.2.0.2_Java这个压缩包,你将获得一个完整的工具集,帮助你更高效地实现上述功能。PageOffice是一个专门针对Java开发的Office组件,它与Apache POI类似,但提供了更高级的功能,如...

Global site tag (gtag.js) - Google Analytics