在PowerBuilder中利用自动化技术调用Excel处理与打印表格

文学乐 人气:2.16W

摘要Microsoft公司的Office办公软件中的Excel是一种专业的电子表格处理软件,Microsoft公司对它的Office软件系列都提供了对自动化技术的支持,这样就可以通过其他高级编程语言调用Office软件系列,利用其成熟而可靠的技术与功能来轻松实现特定功能。本文中,将通过自动化技术,实现在PowerBuilder中调用Excel来实现表格的输出与打印。

在PowerBuilder中利用自动化技术调用Excel处理与打印表格

关键词 自动化 Excel PowerBuilder 表格

1 问题的提出
在为某企业设计电子图文档管理系统中,用户提出要求,要能够快速输出某些电子表格。在未使用自动化技术之前,该企业使用的是AutoCad软件来一次性将多个表格生成到一个DWG文件中,然后通过绘图仪出图。这种做法的好处在于能够有效的节省企业的开支,一次性生成大量的表格。但是,缺点也是明显的:这种做法欠缺灵活性,当遇到只需要输出少量表格的情况时,做法过于复杂。即这种做法非常适合于大量表格的批量输出,而不适合个别表格的单独输出。正是在这种背景下,我们提出了使用Excel电子表格处理软件来处理该企业的表格输出问题。
Excel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,并且非常关键的是:它具有表格计算汇总功能,在这一点上,AutoCad软件是无法相比的。另外一个原因,在当前的企业中,打印机的使用日益普及,打印速度也日益加快,当多个用户同时需要打印时,可以通过高速的网络打印机来轻松实现,在这一点上,使用Excel也具有一定的优势。
2 自动化技术
Microsoft公司提供的自动化技术,简单的说,就是将某一个应用程序的'功能(可能是一部分)当作一系列的对象来向其他的外部应用程序暴露(Expose),这个外部应用程序就可以使用这些对象,这个过程就被称为自动化(Automation)。例如,Excel,我们可以将它的大部分功能当作一系列对象来加以暴露,然后在另外的应用程序中使用这些对象,这就是使用自动化对象来调用Excel完成指定功能的关键所在。
一个应用程序的可访问对象被称为对象模型(Object Model),如果能够使用自动化来操纵一个程序的对象模型就意味着可以重复使用组件。例如,使用自动化,利用Excel中已经编写和测试好的代码来进行复杂的数学运算,这就省去了程序员亲自动手编写和调试复杂代码的麻烦。
暴露对象的程序被称为服务器(Servers),使用这些对象的程序被称为客户(Clients)。在这里,我们把Excel当作自动化服务器,把我们的PowerBuilder应用程序当作客户,这样就可以通过自动化技术来实现特定的表格生成和打印功能。
在大多数的Office软件中都包含一个Application对象,Excel也不例外,这个对象是Excel对象模式中的基础对象,它包含了许许多多的成员(Member),但是在这里,我们只需要使用到其中的一部分。
3 在PowerBuilder中使用自动化技术
PowerBuider是Sybase公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术——DataWindow,可以很轻松的开发出非常专业的数据库应用程序。此外,PowerBuilder还支持多种数据库,能够很轻松的与目前流行的MS SQL Server、Oracle等企业级数据库建立连接,处理各种事务。
PowerBuilder中的编程语言被称为脚本(Script),实际上,使用PowerBuilder编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思想,它还提供了对OLE、DDE、Automation等技术的支持,下面就来说明如何在PowerBuilder中使用自动化技术。
首先,声明一个OLE对象,如下:
OLEObject OLE_MyExcel
其次,创建该OLE对象,如下:
OLE_MyExcel =Create OLEObject
然后,使用PowerBuilder中的ConnectToNewObject函数来创建一个新的OLE对象,并且连接到该对象上,如下:
OLE_MyExcel. ConnectToNewObject ("ication")