Java语言调用PageOffice生成word的操作教程
小标 2018-12-04 来源 : 阅读 936 评论 0

摘要:本文主要向大家介绍了Java语言调用PageOffice生成word的操作教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了Java语言调用PageOffice生成word的操作教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。


一、在开发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. 生成效果图



          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程