2023年11月30日发(作者:)

po werbuilder

中实现

excel

格的导入和导出

在为某单位制作一个管理信息系统软件时, 用户提出, 系统

中要能够实现 excel 表格的导入和导出。 Excel 软件是专门为处

各式电子表格而设计,它能够非常高效而专业的处理各式表

格,在使用这个管理信息系统软件之前, 单位的大部分数据都是

保存在 excel

中的。系统前台的开发使用的是 POWERBUILD E

PO WERBUILDE是面向对象的数据库开发工具之一,它可以操纵 众多

大型数据库和桌面数据库, 支持多种硬件平台。 但它有一个 致命的

弱点,就是打印报表非常不方便,打印函数太少,特别是 对中国式报

表。而EXCEL制表却非常容易,若把两者结合起来 使用则会取长补

短。 也就是说我们的这个系统要既能将 excel 表中的内容导入到

数据库中,又要能将数据库中的数据导出到 excel 中。

PowerBuider Sybase 公司推出的一种高级数据库应用程

开发环境, 在这个环境中开发数据库应用程序, 使用其专利技

DataWindow,可以很轻松的开发出非常专业的数据库应用程 序。此

外, PowerBuilder 还支持多种数据库,能够很轻松的与 目前流行的

MS SQL Server Oracle 等企业级数据库建立连接, 处理各种事

务。 PowerBuilder 中的编程语言被称为脚本

Script ),实际上,使用 PowerBuilder 编写的程序也是事件

面向对象的编程思想,它还提供了对 O L E DD E Automation

技术的支持,下面我们就先来看一下如何将 excel 报表通过

powerbuilder 导入到数据库中。

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

OLEObject ExcelServer

其次,创建该OLE对象,如下:

ExcelServer =Create OLEObject

驱动,在界面设计上也完全做到了“所见即所得” , 并完全使用

然后,使用 PowerBuilder

中的 ConnectToNewObject 函数来

创建一个新的OLE对象,并且连接到该对象上,如下:

ExcelServer. ConnectToNewObject ("ation")

用该函数时,如果成功的话,返回值是 0,否则就意味着调用 失败。

调用函数成功后我们需要利用 getfileopenname 函数调用 一个

对话框, 用来选择将要导入到数据库中的 excel 报表。具体 代码如

下,省略了部分变量定义语句。

value=getfileopenname(" 请选择文件名 " str_filename

file "xls" "xls Files

(*.xls)

*.xls")

(str_filename)

str_savename="c:"

(str_savename 3)

在作完以上工作以后, 需要关闭自动化对象, 撤销与自动化

服务器的连接,销毁 OLE对象,因为使用自动化程序,尤其是

WordExcel这样的Office程序,所消耗的系统资源是很庞大 的,

因此在每次工作完成之后,需要释放这部分系统资源。代码 如下:

()

nectObject()

DESTROY ExcelServer

系统资源释放后通过 dw_File (str_savename )

excel

报表中的内容显示到 powerbuilder 的数据窗口中,再通过

dw_() 命令将数据保存在数据库中。

在导入过程中有一点需注意,就是数据库中表的列与相应 excel

报表的列的数据类型要相对应。

以上为导入 excel 报表的过程, 下面我们看一下将数据库中

数据导出到 excel 文件中的过程。

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

OLEObject newoleobject newoleworkbooks

其次,创建该OLE对象,如下:

newoleobject=Create oleobject

然后,使用 PowerBuilder

中的 ConnectToNewObject 函数来

创建一个新的OLE对象,并且连接到该对象上,如下:

newoleobject. ConnectToNewObject

("ation")

调用该函数时,如果成功的话,返回值

0

函数调用成功后, 我们打开一个 excel 文件并且使这个文件

可见,然后利用 cell 函数将数据窗口中的数据导出到

excel

件中,部分代码如下:

e=true

newoleworkbooks=eets(1)

(1

1).value=" 列名 1"

(1 2).value=" 列名 2"

long rownumber

for rownumber=2 to dw_nt()+1

(rownumber 1).value=rownumber

(rownumber,2).value=dw_mst

ring(rownumber - 1 1)

(rownumber,3).value=dw_mst

ring(rownumber - 1 2)

Next

将数据导出到 excel 文件后,用 getfilesavename 函数调用

对话框将 excel 文件保存到适当的位置,最后将系统资源释放,

码如下:

value=getfilesavename(" 请选择文件名 " str_filename

file "xls" "xls Files

(*.xls)

*.xls")

(str_filename)

()

nectobject()

destroy newoleobject

destroy newoleworkbooks 出功能的详细说明, 通过实际应用

表明, 实现 excel 报表的导入 功能能避免重新在数据库中录入数据

的繁琐, 数据库中数据导出 excel 文件使数据的打印更为方便和

灵活, 这两个功能也是我 们在制作管理信息系统软件时必不可少的

两个功能。

以上内容为在 PowerBuilder

中实现 excel 文件的导入和导