文档库 最新最全的文档下载
当前位置:文档库 › 在powerbuilder中实现excel表格的导入和导出

在powerbuilder中实现excel表格的导入和导出

信息科掌

SI LI C o N

L L E Y曜豢:

在pow er bu订der中实现exc el表格的导入和导出

梁倩

(天津开发区职业技术学院天津300457)

【摘要]使用P ow er B u“de r编程软件,结合O L E o bj ec t技术和Pow er B u“der的数据窗口,实现将ex cel报表导八到数据库中以及将数据库中的数据导出到excel文件中的功能。

【关键词]Pow er B ui l der e xc e l O L E对象数据导入导出

中图分类号:TP3文献标识码:^文章编号:1671—7597(2008)0710062~01’

在为某单位制作一个管理信息系统软件时,用户提出,系统中要能够实现ex cel表格的导入和导出。E x cel软件是专门为处理各式电子表格而设计,它能够非常高效而专业的处理各式表格,在使用这个管理信息系统软件之前,单位的大部分数据都是保存在e xcel中的。系统前台的开发使用的是P0w E RB U I L DE,P0w E R叫I L D ER是面向对象的数据库开发工具之一,它可以

操纵众多大型数据库和桌面数据库,支持多种硬件平台。但它有一个致命的弱点,就是打印报表非常不方便,打印函数太少,特别是对中国式报表。而E X C E L制表却非常容易,若把两者结合起来使用则会取长补短。也就是说我们的这个系统要既能将exc el报表中的内容导入到数据库中,又要

能将数据库中的数据导出到e xcel中。

P ow e r Bui der是s ybas e公司推出的一种高级数据库应用程序开发环境,在这个环境中开发数据库应用程序,使用其专利技术Dat awi nd凹,可以很轻松的开发出非常专业的数据库应用程序。此外,Power B u i l de r还支

持多种数据库,能够很轻松的与目前流行的M s s。L ser ver,or a c】e等企业级数据库建立连接,处理各种事务。PoW e r B ui l der中的编程语言被称为脚本(sc r i D t),实际上,使用P oW er B ui l der编写的程序也是事件驱动,在界面设计上也完全做到了“所见即所得”,并完全使用面向对象的编程思

想,它还提供了对0L E、叻E、Aut ol I l at i on等技术的支持,下面我们就先来看一下如何将excel报表通过p w er bu i l der导入到数据库中。

首先,声明一个OLE对象,如下:

oL Eobj ect E xc el S er v er

其次,创建该O LE对象,如下:

E xce l S e r ver《r e at e0L EO bj ect

然后,使用PO W er B ui l der中的conne ct T o N eW o bj ec t函数来创建一个新的0L E对象,并且连接到该对象上,如下:

Exce l Ser ve r.con nect T o N ew obj ect(’excel.A ppl i cat i on。)调用该函数时,如果成功的话,返回值是O,否则就意味着调用失败。

调用函数成功后我们需要利用ge t f i l e openn∞e函数调用一个对话框,用来选择将要导入到数据库中的exc el报表。具体代码如下,省略了部分变量定义语句。

val ue=get f i l eope nnalⅡe(’请选择文件名’,s”一f i l en锄e,f i l e,’xl s。,。xl s Fi l es(丰.xl s),木.xl s’)

Excel Ser ver.W or kbooks.0pen(st r—f i l en锄e)

s tr—sa ve nam e2。c:\te m p.t xt。

excel s er ver.act i vew or kbook.s av eas(s t r_s avena柚e,3)

在作完以上工作以后,需要关闭自动化对象。撤销与自动化服务器的连接,销毁O L E对象,因为使用自动化程序,尤其是w or d或E xcel这样的of f i ce程序,所消耗的系统资源是很庞大的,因此在每次工作完成之后,需要释放这部分系统资源。代码如下:

E xcel Ser ve r.quit()

E xcel ser ver.D i sconnect o bj ect()

D E S TR O Y E xc el S er v er

系统资源释放后通过dL l.I m por t Fi l e(st r—save n∞e)语句将exce l 报表中的内容显示到p0W er bui l der的数据窗口中,再通过d W_1.u pdat e()命令将数据保存在数据库中。

在导入过程中有一点需注意,就是数据库中表的列与相应e xcel报表的列的类型要相对应。

以上为导入exc el报表的过程,下面我们看一下将库中导出到excel文件中的过程。

首先,声明两个OLE对象,如下:

0L Eobj ect new o l eobj ect,new01ew or kbooks

其次,创建该O LE对象,如下:

new ol eo bj ec t=C r eat e ol e obj ect

然后,使用Pow er B ui l der中的conne ct ToN eW o bj ec t函数来创建一个新的O L E对象,并且连接到该对象上,如下:

new01eobj ec t.conn ect T oN e W obj ect(’exc el.A pp l i cat i o n’)调用该函数时,如果成功的话,返回值是O。

函数调用成功后,我们打开一个excel文件并且使这个文件可见,然后利用cel l函数将数据窗口中的数据导出到excel文件中,部分代码如下:new ol eobj ect.w or kbooks.add

new ol eo bj ect.vi s i bl e=t r ue

new01ew or kbo oks=new o l eobj ec t.w or ks heet s(1)

new01ew o r kbooks.cel l s(1,1).val ue=’列名1’

new ol ew or k books.cel l s(1,2).val ue=’列名2’

10ng r om l u m ber

f or r o帅um ber22t o dw1.r ow count()+1

new olew or kbooks.cell s(r o盯lu【Ⅱber,1).val ue=r o肌岫ber—l

new01e霄or kboo ks.cel l s(r oW num ber,2).va l ue=dw一1.get i t em s t r i ng (r o町l uⅢber一1,1)

new ol ew orkbooks.cel l s(r o w num ber,3).value=d霄一1.get i tem st r i ng (r ow nu m ber—l,2)

N ext

将数据导出到e xce l文件后,用ge t f i l es ave n锄e函数调用对话框将exce l文件保存到适当的位置,最后将系统资源释放,代码如下:val u e=get f订esa ven∞e(’请选择文件名’,st r-f i l en锄e,f i l e,’xl s’,’xl s Fil e s(}.盖l s),幸.xls’)

new01e w or kbooks.saveas(st r f i l enam e)

neW01eobj ect.qui t()

new01eob j ect.di s connect o bj ect()

des t r oy new01eobj ect

des t r oy ne霄ol e-ror kboo ks

以上内容为在Pow e r B ui l de r中实现exc el文件的导入和导出功能的详细说明,通过实际应用表明,实现e xcel报表的导入功能能避免重新在数据库中录入数据的繁琐,数据库中数据导出到exce l文件使数据的打印更为方便和灵活,这两个功能也是我们在制作管理信息系统软件时必不可少的两个功能。

参考文献:

[1]郑阿奇、殷红先、

子工业出版社,2004.3.

[2]华传铭、张振坤、

机械工业出版社2003.9.

张为民,编著P o w er Bui l d er实用教程(第二版)电

吴晓英,编著Pow e r B u订der9.0库开发实例

相关文档