下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在PowerBuilder中利用自动化技术调用Excel处理与打印表格 05-12-23 10:55:00 作者:佚名 编辑:studa9ngns摘要Microsoft公司的Office办公软件中的Excel是一种专业的电子表格处理软件,Microsoft公司对它的Office软件系列都提供了对自动化技术的支持,这样就可以通过其他高级编程语言调用Office软件系列,利用其成熟而可靠的技术与功能来轻松实现特
2、定功能。本文中,将通过自动化技术,实现在PowerBuilder中调用Excel来实现表格的输出与打印。关键词 自动化 Excel PowerBuilder 表格1 问题的提出在为某企业设计电子图文档管理系统中,用户提出要求,要能够快速输出某些电子表格。在未使用自动化技术之前,该企业使用的是AutoCad软件来一次性将多个表格生成到一个DWG文件中,然后通过绘图仪出图。这种做法的好处在于能够有效的节省企业的开支,一次性生成大量的表格。但是,缺点也是明显的:这种做法欠缺灵活性,当遇到只需要输出少量表格的情况时,做法过于复杂。即这种做法非
3、常适合于大量表格的批量输出,而不适合个别表格的单独输出。正是在这种背景下,我们提出了使用Excel电子表格处理软件来处理该企业的表格输出问题。Excel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,并且非常关键的是:它具有表格计算汇总功能,在这一点上,AutoCad软件是无法相比的。另外一个原因,在当前的企业中,打印机的使用日益普及,打印速度也日益加快,当多个用户同时需要打印时,可以通过高速的网络打印机来轻松实现,在这一点上,使用Excel也具有一定的优势。2 自动化技术Microsoft公司提供的自动化技术,简单的说,就是将某一个应用程序的功能(可能是一部分)当作一
4、系列的对象来向其他的外部应用程序暴露(Expose),这个外部应用程序就可以使用这些对象,这个过程就被称为自动化(Automation)。例如,Excel,我们可以将它的大部分功能当作一系列对象来加以暴露,然后在另外的应用程序中使用这些对象,这就是使用自动化对象来调用Excel完成指定功能的关键所在。一个应用程序的可访问对象被称为对象模型(Object Model),如果能够使用自动化来操纵一个程序的对象模型就意味着可以重复使用组件。例如,使用自动化,利用Excel中已经编写和测试好的代码来进行复杂的数学运算,这就省去了程序员亲自动手编写和调试复杂代码的麻烦。暴露对象的程序被称为服务器(Ser
5、vers),使用这些对象的程序被称为客户(Clients)。在这里,我们把Excel当作自动化服务器,把我们的PowerBuilder应用程序当作客户,这样就可以通过自动化技术来实现特定的表格生成和打印功能。在大多数的Office软件中都包含一个Application对象,Excel也不例外,这个对象是Excel对象模式中的基础对象,它包含了许许多多的成员(Member),但是在这里,我们只需要使用到其中的一部分。3 在PowerBuilder中使用自动化技术PowerBuider是Sybase公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术DataWi
6、ndow,可以很轻松的开发出非常专业的数据库应用程序。此外,PowerBuilder还支持多种数据库,能够很轻松的与目前流行的MS SQL Server、Oracle等企业级数据库建立连接,处理各种事务。PowerBuilder中的编程语言被称为脚本(Script),实际上,使用PowerBuilder编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思想,它还提供了对OLE、DDE、Automation等技术的支持,下面就来说明如何在PowerBuilder中使用自动化技术。首先,声明一个OLE对象,如下:OLEObject OLE_MyExcel其次,
7、创建该OLE对象,如下:OLE_MyExcel =Create OLEObject然后,使用PowerBuilder中的ConnectToNewObject函数来创建一个新的OLE对象,并且连接到该对象上,如下:OLE_MyExcel. ConnectToNewObject ("excel.Application")调用该函数时,如果成功的话,返回值是0,否则就意味着调用失败。到此,自动化的准备工作已经完成,下面是具体的操作过程。4 处理和打印表格在调用Excel时,首先需要解决的一个问题是是否让Excel可见,即是否为后台操作。这个问题可以简单的通过设置Visible属性
8、加以控制,如果希望Excel后台运行,可以简单的编写如下语句:OLE_MyExcel.visible=false然后是打开指定的XLS文件,具体的语句如下:OLE_MyExcel.Application.Workbooks.Open ("d:excel-example.xls")要操纵数据列表中的数据单元,就必须对ActiveCell对象进行操纵,该对象是Application对象中一项属性。将数据输入到一个数据单元包括两个步骤:第一是选择一个数据单元,第二是将数据传递给它。选择一个数据单元通过调用Range对象的Select()方法就可以完成,Range对象是用来选择一个
9、或多个数据单元的。Select()方法需要起始的行数、列数和结束的行数、列数来确定所选择的数据单元。如果只选择一个单独的数据单元,就可以忽略结束的行、列数。当范围被设定以后,将数据传递给ActiveCell对象(引用了被Range对象指定的数据单元)的FormulaR1C1属性。如下:OLE_MyExcel.Range("c10").Select()OLE_MyExcel.ActiveCell.FormulaR1C1 = sle_2.text /Sle_2为一个静态文本框控件OLE_MyExcel.Range("J10").Select()如
10、果希望得到一系列数值的和,则需要首先使用Select()方法来指定需要求和的Cell的范围,然后指定存放和的Cell位置,最后调用SUM方法即可,如下:OLE_MyExcel.Range(“A1:D1”).Select()OLE_MyExcel.Range(“E1”).Activate()OLE_MyExcel.ActiveCell.FormulaR1C1 = “=SUM(RC-4:RC-1)”当然还可以进行其他方面的设置,例如把字体设置为粗体(Bold),则可以编写如下代码:OLE_MyExcel.Range(“A1:E1”).Select()OLE_MyExcel.Selection.Fo
11、nt.Bold = True至于其他的设置可以参考相关书籍。至于表格的打印,则是简单的调用PrintOut()方法即可,但是需要首先指定打印的范围,如下是打印名为“Sheet1”的WorkSheet的代码:OLE_MyExcel.Worksheets("sheet1").Activate()OLE_MyExcel.ActiveSheet.PrintOut()接下来是关于对XLS文件进行了改动以后,在关闭该文件时是否需要向用户提出警告。这个问题只需要简单的对OLE_MyExcel.Application.DisplayAlerts属性进行设置即可,为True时弹出警告框,为False时不弹出警告框,保存所作的修改。最后一步,在作完所有工作以后,需要关闭自动化对象,撤销与自动化服务器的连接,销毁OLE对象,因为使用自动化程序,尤其是Word或Excel这样的Office程序,所消耗的系统资源是很庞大的,因此在每次工作完成之后,需要释放这部分系统资源。如下:OLE_MyExcel.Application.quit() OLE_MyExcel.DisConnectObject()destroy OL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年中考道德与法治(湖北)第二次模拟考试(含答案)
- 基于神经网络的Linux系统异常模式识别与分类
- 2025年海南省公需课学习-新型农业经营主体培育发展政策
- 2025年营养周饮食健康知识竞赛题库及答案(共200题)
- 2025年八大特殊作业安全判断题试题库及答案(共70题)
- 2025年江苏宿迁中考真题及答案
- 智能客服考试题库及答案
- 定制新托盘合同范本
- 中学教编考试真题及答案
- 2025年廉江高一英语试卷及答案
- 全球重点区域算力竞争态势分析报告(2025年)-
- 2025北京热力热源分公司招聘10人参考笔试题库及答案解析
- 2025年湖南省法院系统招聘74名聘用制书记员笔试参考题库附答案
- 2025广西机电职业技术学院招聘教职人员控制数人员79人备考题库及答案解析(夺冠)
- 2026届高考政治一轮复习:必修2 经济与社会 必背主干知识点清单
- 大学生校园创新创业计划书
- 护士职业压力管理与情绪调节策略
- 贵州国企招聘:2025贵州凉都能源有限责任公司招聘10人备考题库及答案详解(必刷)
- 招标人主体责任履行指引
- 2025-2026学年北师大版五年级数学上册(全册)知识点梳理归纳
- 我的新式汽车(课件)-人美版(北京)(2024)美术二年级上册
评论
0/150
提交评论