在PowerBuilder中通过OLE实现复杂的Excel报表

点赞:31767 浏览:145535 近期更新时间:2024-03-06 作者:网友分享原创网站原创

摘 要:Excel是当前较为流行的数据报表制作和管理工具.作者在文相似度检测绍了一种在PoweBuilder中通过OLE制作Excel报表的方法,在PowerBulider中与Excel的OLE连接.并通过VBA语言,向Exce1写入数据,并对产生的Excel文件进行存储、打印等操作的方法.

关 键 词 :PowerBuilder;OLE;Excel报表;自动化技术

中图分类号:TP31 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.05.026

Realization of Complex Excel Statements In PowerBuilder by OLE

waNG Lan-chun

(Department of puter science and technology of Xinzhou Teacher’s College, Xinzhou 034000, China)

【Abstract】excel is more popular data reporting and management tools in today. the authors in this paper in a PoweBuilder produce the excel report through oLe .oLe connection and excel in PowerBulider. Use VBa language to write excel data, and generate an excel file storage, printing and method of operation.

【Key words】PowerBuilder, the oLe, the excel report, automation technology

0 引 言

在很多情况下,软件开发人员设计数据库应用系统时,免不了要求系统自动且快速生成大量相关报表,通常采用的技术是使用AutoCad软件,将多个表格批量生成到一个CAD图形文件中(即.DWG文件),再通过打印机输出.其技术优点在于能够批量生成大量报表,但对于少量报表输出的情形,缺乏灵活方便性,而且操作步骤比较繁琐,因此需要寻求一种更加适合少量报表生成并输出情况的可行方法.

1 实现思路

Microsoft Office中的Excel报表生成组件就是专门为处理各类报表的专用工具,使用起来非常灵活方便,并且具有数据运算、汇总和报表格式设计等丰富的功能,因此,若能在高级编程语言中把Excel当作对象来调用其现成的功能,利用Excel中已经调试好的代码来进行运算,那么就省去了其他程序员编写和调试复杂代码的麻烦过程,因此可以把Excel视为对象怎么写作器,在PowerBuilder应用程序中通过调用其各中方法来进行表格的生成、计算和打印等功能[1-2].则可实现编程工具中操作复杂Excel报表文件的目的.

2 在PowerBuilder编程语言中生成Excel报表

PowerBuider是Sybase公司提供的一种数据库应用系统的前端快速开发工具,使用其数据窗口对象可以很快捷轻松的访问数据库中各种数据.同时,PowerBuilder开发工具还支持与多种数据库进行访问连接,如目前流行的Oracle、Informian、Microsoft SQL Server等企业级数据库都可建立连接,处理各种有关报表管理事务.下面具体说明如何在PowerBuilder开发语言环境中实现Excel报表生成的主要步骤.

1)声明OLE对象,例如:OLEOBJECT OLE_Report_ Excel;

2)创建OLE对象,例如:OLE_Report_Excel等于Create OLEOBJECT;

3)使用PowerBuilder中的Connect To NewOBJECT()函数来创建一个新的OLE对象,并且连接此对象,例如:OLE_ Report_Excel. Connect To NewObject (‘EXCEL.Application’).如果该函数的调用返回值为-0,说明连接成功,否则就表示调用失败.

经上述三步即可完成操作报表前的准备工作,下面简要介绍后续操作实现过程.

3 生成报表要素

PowerBuilder打开Excel文件时,可以将其设置成后台打开模式进行操作,即通过配置其Visible属性的逻辑值(True或False)来实现,示例语句如下:

OLE_Report_Excel.Visible等于False

OLE_Report_Excel.Application.Workbooks.Open("D:\Report-Example.XLS")

然后对该表格的数据列表中的单元格访问时,必须要通过Application对象的属性对象ActiveCell进行操作,例如对选定单元格赋值时,其操作可分为步骤来实现:

1)选中数据单元格:调用Range对象的Select()方法,Range对象的作用可以选择一个或多个目标数据单元,需要配置起始行数、列数和截至行数、列数,若选择一个单元格,只需配置起始参数.示例代码如下:


OLE_Report_Excel.Range("C1").Select()

2)给选中数据单元赋值:选中之后,对ActiveCell对象的Formula(R1C1)属性赋值即可完成.示例代码如下:

OLE_Report_Excel.ActiveCell.FormulaR1C1等于sle_2. Text //Sle_2为静态文本框控件,将其数值付给

3)调用SUM()方法可以实现对选定数据单元格的求和运算,也即先调用SELECT()方法制定求和单元格的范围,指定结果单元格的位置,将求和结果赋值,示例代码如下:

OLE_Report_Excel.Range(“A1:C1”).SELECT()

OLE_Report_Excel.Range(“E1”).Activate()

O L E _ R e p o r t _ E x c e l . A c t i v e C e l l . FormulaR1C1等于‘等于SUM(C[5]:C[2])’

4)对单元格其他属性其的设置,例如要求把某单元格字体设置为粗体,先选中后设置,示例代码如下:

OLE_Report_Excel.Range(“A1:E1”).SELECT()

OLE_Report_Excel.Selection.Font.BOLD=TRUE

5)报表打印时,首先必须指定打印的内容,再调用Application对象的PrintOut(),例如,打印输出WorkSheet的Sheet1内容时,示例代码如下:

OLE_Report_Excel.Worksheets("SHEET1").Activate()

OLE_Report_Excel.ActiveSheet.PrintOut()

6)结束时关闭Excel文件,同时释放内存资源,同时向操作者发出弹出提示,可以通过对Application对象的DisplayAlerts属性值进行相应的配置,即可完成.此时参数的设置有2个选择,值为TRUE时表示关闭Excel时提出是否保存选择对话[3];值为FALSE时不弹出对话提示,直接自动保存.

7)全部工作完成以后,需要关闭OLE对象,同时断开与Excel怎么写作的连接.程序示例代码如下:

OLE_Report_Excel.Application.QUIT()

OLE_Report_Excel.DisConnectOBJECT()

Destroy OLE_Report_EXCEL

8)其余属性的设置可以查阅相关资料,在此不另描述.

4 程序代码组合示例

OLE_Report_Excel 等于 CREATE OLEOBJECT

RET 等于 OLE_Report_Excel.ConnectToNewObject("Excel. Application")

IF FileExists(FileName) THEN

OLE_Report_Excel.WorkBooks.Open(FileName)

ELSE

OLE_Report_Excel.Application.WorkBooks.Add()

在PowerBuilder中通过OLE实现复杂的Excel报表参考属性评定
有关论文范文主题研究: 数据库类论文范文 大学生适用: 硕士毕业论文、电大论文
相关参考文献下载数量: 58 写作解决问题: 怎么写
毕业论文开题报告: 文献综述、论文前言 职称论文适用: 核心期刊、职称评中级
所属大学生专业类别: 怎么写 论文题目推荐度: 优质选题

FOR I等于1 TO Tolal_SheetNum

OLE_Report_Excel.Application.WorkBooks(1).WorkSheets. Add()

NEXT

END IF

OLE_Report_Excel.Application.WorkBooks(1). WorkSheets(Now_SheetNum).Activate

OLE_Report_Excel.Application.ActiveWorkBook. WorkSheets(Now_SheetNum).Name等于SheetString

OLE_Report_Excel.Application.ScreenUpdating 等于 True

OLE_Report_Excel.Application.Visible 等于 True

Selection.ColumnWidthValue等于9.00 //定义列宽度参数值 9.00 Selection.RowHeightValue等于16.00 //定义行高度参数值 16.00

Selection.HorizontalAlignment 等于 3 //水平居中

Selection.VerticalAlignment 等于 3 //垂直居中

Selection.Font.Name 等于’Arial’ //设置字体

Selection.Font.Bold 等于 True //字体加粗

Selection.Font.Size 等于10 //设置字号

OLE_Report_Excel.Application.WorkBooks(1). WorkSheets(Now_SheetNum).Cells( 2, 1 ).Value 等于 ’列名1’

OLE_Report_Excel.Application.WorkBooks(1). WorkSheets(Now_SheetNum).Cells( 3, 1 ).Value 等于 ’列名2’

OLE_Report_Excel.Application.WorkBooks(1). WorkSheets(Now_SheetNum).Cells( 4, 1 ).Value 等于 ’列名3’

等.

// 写列头文本

OLE_Report_Excel.Application.WorkBooks(1). WorkSheets(Now_SheetNum).Columns(1).Select

OLE_Report_Excel.Selection.RowHeight 等于 RowHeightValue//设置行高

OLE_Report_Excel.Selection.HorizontalAlignment 等于 3 //水平居中

OLE_Report_Excel.Selection.NumberFormat 等于 "@" //字符格式

OLE_Report_Excel.Selection.Font.Name 等于’Arial’ //设置字体OLE_Report_Excel.Selection.Font.Bold 等于 True //字体加粗

OLE_Report_Excel.Selection.Font.Size 等于10 //设置字号

等..

OLE_Report_Excel.Application.DisplayAlerts等于False

OLE_Report_Excel.Application.ActiveWorkBook.Sed 等于 True/* 退出时不会提示保存 */

OLE_Report_Excel.Application.ActiveWorkBook. SeAs(FileName)

OLE_Report_Excel.Application.SCREEN Updating等于FALSE

OLE_Report_Excel.Application.QUIT()

OLE_Report_Excel.Disconnect OBJECT()

DESTROY OLE_Report_EXCEL

5 结 语

采用文相似度检测绍的方法,在实际报表应用开发中,通过与数据库的连接和调用Excel对象的方法,在高级编程语言中灵活方便地实现对复杂报表的生成、报表数据运算的方面功能.

文中实例代码已在Wnidows XP、PowerBuidler 8.0、Mcirosolft SQL Server 2000、Microsoft Office Excel 2000环境下调试并通过,其运行结果符合设计要求,且能够达到预期目的[4].可以使用这种方法快捷方便地制作复杂的Excel报表,能够极大地提高程序开发和维护的效率.