Spreadsheet控件在Delphi数据库系统中的编程与应用

2007-07-05 01:40黄雄波
智能计算机与应用 2007年3期
关键词:电子表格数据表数据源

黄雄波

摘要:在Delphi开发环境中.讨论了Microsoft OWC(Office Web components)的spreadsheet控件数据导入问题。

关键词:DdlphiSpreadsheet控件Excel工作表函数

中图分类号TP311.11

文献标识码B文章编号:1002-2422(2007)03-0022-03

本文在Delphi开发环境中将结合Microsoft OWC(Of-fice Web Components)的Spreadsheet控件进行编程,并运用Excel工作表函数有效地简化统计分析的数据处理过程。

1Delphi中Spreadsheet控件的编程与应用

OWC是包含在Microsoft office的一组控件,软件开发人员利用这些控件可以很方便地在Web文档或传统编程环境中(VB、VC、Delphi、C++Builder等)进行数据分析和图表处理。Microsoft Office XP版本的OWC中的Spread-sheet控件使软件开发人员在编程语言中获得了一个完整的Excel电子表格工作环境。显然,只要把数据表记录导入至Spreadsheet控件中。便可利用其丰富的Excel函数进行数据分析处理。

1.1OWC组件的安装

计算机系统安装Microsoft Office XP后,在Delphi 7中单击菜单[Project]→[Import Type Library],在随后出现的对话框中选取“Microsoft Office XP Web Components 9.0(Version 1.O)”选项,其余参数选用默认值,然后单击。“In-stall”按钮,执行安装:若安装成功,在Delphi IDE的ActiveX页面上出现六个OWC控件。

1.2Spreadsheet控件的数据导入问题

把数据表记录导入至Spreadsheet控件中,其数据源可以选用OWC的DataSourceControl控件或与ADO兼容的控件,两者的主要区别是数据源的定义方式有所不同。这里以选用OWC的DataSourceControl控件为例,讨论spreadsheet控件的数据导入问题。其主要过程如下:

(1)从ActiveX页面上往设计窗体加入spreadsheet和DataSourceControl控件;

(2)编写相关程序代码,完成Spreadsheet控件的数据导入:

var

RSD:ReeordSetDd

begin

DataSourceControl1.ConneetionString:=DRIVER={Microsoft AccessDriver(*.mdb)};‘+DBQ=C:TESTOBl.MDB;

RSD:=DataSoureeControl1.ReeordsetDefs.AddNew (“select*from[成绩表]:‘3成绩表,”);

Spreadsheet1.DataSouree:=DataSoureeContml1.DefauhIntedace as

MSDATASRC_TLB.DataSource;

spreadsheet1.DamMember:=Rsd.Name;

end;

(3)Spreadsheet控件数据导入程序的运行结果

1.3Spreadsheet控件相关的属性及方法

Spreadsheet控件详尽的使用说明可参见Microsoft Of-fice Web组件对象模型的帮助文档,不同的Office版本其OWC帮助文档的名称会有所不同。如Office 2000为MSOWCVBA.chm、Office XP为OWCVBAlo.clun,而Office2003则为OWCVBAl1.clam,用户可在资源管理器中定位到相应的目录后便可打开相应的帮助文档.本文所运用到Spreadsheet控件的主要属性和方法。

1.4spreadsheet控件的Excel函数应用

由于Spreadsheet控件为用户提供了Excel电子表格的工作环境,因此众多的Excel工作表函数可以直接在Spreadsheet控件的单元格中使用。图1中各个学生的总分、最高分、最低分及名次等信息均可分别调用Excel工作表的Sum、max、min、Rank函数来处理,具体代码如下:

var

i:integer;

begin

Spreadsheet1.Cells.hem[2,6].Value2:==sum(c2:e2);

Spreadsheet1.Cells.Item[2,7].Value2:==max(c2:e2);

Spreadsheetl.Cells.Item[2,8].Value2:==min(c2:e2);

spreadsheet1.Cells.Item[2,9].Value2:==Rank(f2,f$2:F$65536,0);

Spreadsheet1.Ceils.Range[Spreadsheet1.Cells.Ihem[2,6],Spreadsheet1.Cells.Item[2,9J].Select;

for i:=1 to ADOQuery1.ReeordCount-1 do

Spreadsheet1.Selection.Copy(Spreadsheet1.Cells.Item[2+i,61);

end;

程序最终的运行结果如图3所示:

2结束语

Spreadsheet控件为众多编程语言提供了Excel电子表格的工作环境,它的可编程内核和丰富的工作表函数为MIS应用系统带来了一种全新的、快捷的数据处理方法。

猜你喜欢
电子表格数据表数据源
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
电子表格的自动化检测
电子表格的自动化检测
图表中的交互 数据钻取还能这么用
电子表格音乐合成器
基于Excel的照片查询系统开发与应用
再谈利用邮件合并功能批量生成准考证
数据有增加 图表自适应