论文部分内容阅读
摘要:Excel是微软的办公自动化软件的一个组件,是用于数据处理的电子表格软件,而ADO是访问和操作数据库的方法。通过一个课程信息管理程序的设计对于在Delphi中如何利用ADO组件来访问Excel文件的技术方法与实现步骤进行了详细阐述。
关键字:ADO;Excel;访问
中图法分类号:TP311文献标识码:B文章编号:1009-3044(2007)17-31332-02
Visits the Excel document Based on Delphi Use ADO the Technology and the Realization
WU Feng-zhen
(Fujian College of Water Conservancy AndElectric Power,Yong'an 366000, China)
Abstract:Excel is a Microsoft's office automation software module, is uses indata processing electronic forms software, but ADO is the visit andthe operation database method. Regarding visit the Excel document howthrough did a curriculum information management procedure design inDelphi using the ADO module the technical method and the realizationstep has carried on the detailed elaboration.
Key words:ADO;Excel;visit
1 引言
Excel是Microsoft Office办公软件的组件之一,是被广泛应用的电子表格处理软件,可以实现信息保存、数据计算处理、数据分析决策、信息动态发布等功能。
Microsoft? ActiveX? Data Objects (ADO) 使您能够编写应用程序,通过 OLE DB 提供者访问和操作数据库服务器中的数据。它的主要优点是易于使用,速度快,内存支出低,占用磁盘空间少。ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的主要功能。
Excel为我们提供了强大的数据处理功能,ADO为我们提供了访问数据库的方法,而我们要在Delphi中利用ADO来访问Excel中的数据,那么我们得先清楚在Delphi中ADO的相关组件,并且应该将一个Excel数据文件想像为一个关系数据库,Excel文件中的每个工作表就对应该数据库中的一个表,而工作表中的每一列就是表的列。
2 在Delphi中ADO的相关组件
在Delphi中有一套采用ADO的组件,它们不同于基于Borland数据库引擎(BDE)的连接和数据集组件。利用这些采用ADO的组件,我们可以与ADO数据库相联系,读取数据库中的数据并执行相应的操作,而且此过程完全不需要使用BDE。
2.1 TADOConnection组件
TADOConnection组件被用于建立一个与ADO数据存储的连接。为了执行命令、获取数据和操作数据,可以把多个ADO数据集和命令组件与一个TADOConnection组件相关联以共享连接。
TADOConnection组件有两个重要的属性,分别是ConnectionString和Connected。
ConnectionString属性是用来指明数据库的连接信息(包括数据源的提供者、数据库文件和用户名及密码等)的属性,可以在程序设计阶段,通过对象观察器来设置它。而Connected属性用来说明一个与数据库的联系是否被激活。
TADOConnection组件可以调用Open方法来建立与ConnectionString属性里指明的数据库的联系,而调用Cancel方法来取消一个准备与ADO数据库建立的联系。
2.2 TADODataSet组件
TADODataSet组件是用于获取和操纵ADO数据的主要组件。可以操纵数据表、执行SQL语句和存储过程并且能通过TADOConnection组件或直接与一个数据存储建立连接。它封装了TTable、TQuery和TStoredProc等组件为基于BDE程序提供的功能。
TADODataSet组件有几个重要属性,分别是Active、ConnectionString、CommandText、CommandType和Connection。
Active属性用来标明TADODataSet组件的打开与否。ConnectionString属性和TADOConnection组件中的ConnectionString属性是一样的含义。CommandText属性可以用来表达语句、数据表名或者执行的存储过程,该属性为一个文本值。CommandType属性用来指明CommandText属性的类型,两者要一致。Connection属性功能和ConnectionString属性一样,不过这里要和TADOConnection组件结合起来使用,而ConnectionString属性不使用TADOConnection组件直接和数据库联系。
2.3 TADOTable组件
TADOTable组件是用于通过一个单个的数据库表获取和操作数据集的组件。但也具有建立组件与ADO数据库之间联系的属性和方法,如Active、ConnectionString和Connection等,含义和TADODataSet组件里的一样。
3 在Delphi中的数据浏览组件
数据浏览组件用于输入,操作或浏览数据库中的数据,为我们提供一个操作数据库数据的可视界面。我们这里用到的主要有TDBGrid组件和TDBNavigator组件。
3.1 TDBGrid组件
TDBGrid组件主要用于将数据源的信息显示在网格中,它以行和列组成的栅格显示数据库中的数据,类似于电子表格。重要的属性有:Columns、DataSource和Fields等。
Columns属性用来读取和设置网络中列的特性,如列的宽和列的名称等。DataSource属性是最重要的属性,用于指明要显示的数据的来源。通过Fields属性可以直接访问作为网格中一列的数据集中的字段对象。
3.2 TDBNavigator组件
TDBNavigator组件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供了一组简单明了的控制按钮。我们单击其中的按钮可以实现向前向后移动记录指针、插入记录、修改记录、提交修改、取消修改、删除记录以及刷新记录的显示等操作。它有一个重要属性,就是DataSource属性,用来把它和被其控制的数据集联系起来。在这里,我们把TDBNavigator组件和TDBGrid组件结合起来一起使用。
除了要用到上述组件之外,我们还需要用到一个重要组件TDataSource组件。TDataSource组件在这里用于连接ADO的数据集组件和数据浏览组件。
4 在Delphi中利用ADO访问Excel文件的实现
TADODataSet组件和TADOTable组件都是数据集组件,都有一个ConnectionString属性。如果我们利用这两个数据集组件的ConnectionString属性进行连接数据库的话,就不需要TADOConnection组件了,并且这两个数据集组件也只需要用一个就可以了。在这里我们利用TADODataSet组件和TADOConnection组件来实现数据库的连接,并以一个课程信息管理程序为例进行说明。
4.1 创建数据文件
新建一个名为‘课程信息’的Excel文件,把表名也重命名为‘课程信息’,并把多默认的另外两个表删除掉。在A1、B1和C1三个单元格中输入课程号、课程名称和学分,并分别在其下面的单元格中输入对应的数据(即课程信息)。
4.2 创建课程信息管理程序
1)新建一个工程,取名为KCxxgl.dpr。
2)把TADOConnection组件放到窗体上,取名为My ADOConnection,并设置其属性。具体过程如下:
(1)单击ConnectionString属性,打开该属性的对话框,选择Use Connection String。
(2)单击Build按钮,打开数据连接属性对话框,在提供程序选项卡中OLE DB的提供者选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这原本是用于连接Access数据库的驱动程序,但也可打开Excel文件。
(3)单击连接选项卡,选择或输入数据名称时,选择刚才新建的名为‘课程信息’的Excel文件。注意,不是Access文件,而是Excel文件。
(4)单击所有选项卡,把扩展属性Extended Properties设置为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。选中Extended Properties,单击编辑值进行设置。
(5)最后回到连接选项卡,单击测试连接,进行数据连接的测试,如果成功,则提示测试连接成功的字样。
3)把TADODataSet组件放到窗体上,取名为MyADODataSet,并设置其属性。具体过程如下:
(1)设置Connection属性值为My ADOConnection。
(2)设置CommandType属性值为cmdTableDirect,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
(3)设置CommandText属性值为刚才新建Excel文件中的名为‘课程信息’的表格。
(4)设置Active属性值为True,用于打开MyADODataSet。
4)把TDataSource组件放到窗体上,取名为MyDataSource,并设置其属性DataSet的值为MyADODataSet,用于把数据源连接到上面建立的数据集中来。
5)把TDBGrid组件放到窗体上,取名为MyDBGrid,并设置其属性。具体过程如下:
(1)设置DataSource属性值为MyDataSource,这样就通过数据源组件MyDataSource把数据集组件MyADODataSet和数据浏览组件MyDBGrid联系起来了。
(2)单击Columns属性,打开Editing MyDBGrid. Columns对话框,单击Add New按钮增加一列,单击选中刚增加的列,设置其FieldName属性值为课程号,并设置其Width属性值为50。再以同样的方法设置‘课程名称’和‘学分’两列。
6)把TDBNavigator组件放到窗体上,取名为MyDBNavigator,并设置其属性DataSource的值为MyDataSource,这样就通过数据源组件MyDataSource把数据集组件MyADODataSet和数据控制组件MyDBNavigator联系起来了。
7)单击运行(F9)按钮,把程序编译起来。结果如图(课程信息管理程序界面)所示,这样我们就可以通过MyDBNavigator组件在MyDBGrid上进行插入数据、删除数据、更新数据以及进行数据记录的移动等数据库常用的操作。
图1课程信息管理程序界面
5 结束语
Microsoft Excel是常用的一种电子表格软件,我们经常用它来处理一些数据。而如何把其中的数据当数据库中的数据利用ADO组件进行访问,就是本文所研究的内容,本文对于在Delphi中利用ADO组件访问Excel文件的技术方法与实现步骤进行了详细的介绍。
参考文献:
[1]吴天准.Delphi7 程序设计技巧与实例[M] 北京 中国铁道出版社,2003
[2]肖帆.Delphi6实用编程教程[M] 北京 北京希望电子出版社,2001
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键字:ADO;Excel;访问
中图法分类号:TP311文献标识码:B文章编号:1009-3044(2007)17-31332-02
Visits the Excel document Based on Delphi Use ADO the Technology and the Realization
WU Feng-zhen
(Fujian College of Water Conservancy AndElectric Power,Yong'an 366000, China)
Abstract:Excel is a Microsoft's office automation software module, is uses indata processing electronic forms software, but ADO is the visit andthe operation database method. Regarding visit the Excel document howthrough did a curriculum information management procedure design inDelphi using the ADO module the technical method and the realizationstep has carried on the detailed elaboration.
Key words:ADO;Excel;visit
1 引言
Excel是Microsoft Office办公软件的组件之一,是被广泛应用的电子表格处理软件,可以实现信息保存、数据计算处理、数据分析决策、信息动态发布等功能。
Microsoft? ActiveX? Data Objects (ADO) 使您能够编写应用程序,通过 OLE DB 提供者访问和操作数据库服务器中的数据。它的主要优点是易于使用,速度快,内存支出低,占用磁盘空间少。ADO 支持用于建立客户端/服务器和基于 Web 的应用程序的主要功能。
Excel为我们提供了强大的数据处理功能,ADO为我们提供了访问数据库的方法,而我们要在Delphi中利用ADO来访问Excel中的数据,那么我们得先清楚在Delphi中ADO的相关组件,并且应该将一个Excel数据文件想像为一个关系数据库,Excel文件中的每个工作表就对应该数据库中的一个表,而工作表中的每一列就是表的列。
2 在Delphi中ADO的相关组件
在Delphi中有一套采用ADO的组件,它们不同于基于Borland数据库引擎(BDE)的连接和数据集组件。利用这些采用ADO的组件,我们可以与ADO数据库相联系,读取数据库中的数据并执行相应的操作,而且此过程完全不需要使用BDE。
2.1 TADOConnection组件
TADOConnection组件被用于建立一个与ADO数据存储的连接。为了执行命令、获取数据和操作数据,可以把多个ADO数据集和命令组件与一个TADOConnection组件相关联以共享连接。
TADOConnection组件有两个重要的属性,分别是ConnectionString和Connected。
ConnectionString属性是用来指明数据库的连接信息(包括数据源的提供者、数据库文件和用户名及密码等)的属性,可以在程序设计阶段,通过对象观察器来设置它。而Connected属性用来说明一个与数据库的联系是否被激活。
TADOConnection组件可以调用Open方法来建立与ConnectionString属性里指明的数据库的联系,而调用Cancel方法来取消一个准备与ADO数据库建立的联系。
2.2 TADODataSet组件
TADODataSet组件是用于获取和操纵ADO数据的主要组件。可以操纵数据表、执行SQL语句和存储过程并且能通过TADOConnection组件或直接与一个数据存储建立连接。它封装了TTable、TQuery和TStoredProc等组件为基于BDE程序提供的功能。
TADODataSet组件有几个重要属性,分别是Active、ConnectionString、CommandText、CommandType和Connection。
Active属性用来标明TADODataSet组件的打开与否。ConnectionString属性和TADOConnection组件中的ConnectionString属性是一样的含义。CommandText属性可以用来表达语句、数据表名或者执行的存储过程,该属性为一个文本值。CommandType属性用来指明CommandText属性的类型,两者要一致。Connection属性功能和ConnectionString属性一样,不过这里要和TADOConnection组件结合起来使用,而ConnectionString属性不使用TADOConnection组件直接和数据库联系。
2.3 TADOTable组件
TADOTable组件是用于通过一个单个的数据库表获取和操作数据集的组件。但也具有建立组件与ADO数据库之间联系的属性和方法,如Active、ConnectionString和Connection等,含义和TADODataSet组件里的一样。
3 在Delphi中的数据浏览组件
数据浏览组件用于输入,操作或浏览数据库中的数据,为我们提供一个操作数据库数据的可视界面。我们这里用到的主要有TDBGrid组件和TDBNavigator组件。
3.1 TDBGrid组件
TDBGrid组件主要用于将数据源的信息显示在网格中,它以行和列组成的栅格显示数据库中的数据,类似于电子表格。重要的属性有:Columns、DataSource和Fields等。
Columns属性用来读取和设置网络中列的特性,如列的宽和列的名称等。DataSource属性是最重要的属性,用于指明要显示的数据的来源。通过Fields属性可以直接访问作为网格中一列的数据集中的字段对象。
3.2 TDBNavigator组件
TDBNavigator组件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供了一组简单明了的控制按钮。我们单击其中的按钮可以实现向前向后移动记录指针、插入记录、修改记录、提交修改、取消修改、删除记录以及刷新记录的显示等操作。它有一个重要属性,就是DataSource属性,用来把它和被其控制的数据集联系起来。在这里,我们把TDBNavigator组件和TDBGrid组件结合起来一起使用。
除了要用到上述组件之外,我们还需要用到一个重要组件TDataSource组件。TDataSource组件在这里用于连接ADO的数据集组件和数据浏览组件。
4 在Delphi中利用ADO访问Excel文件的实现
TADODataSet组件和TADOTable组件都是数据集组件,都有一个ConnectionString属性。如果我们利用这两个数据集组件的ConnectionString属性进行连接数据库的话,就不需要TADOConnection组件了,并且这两个数据集组件也只需要用一个就可以了。在这里我们利用TADODataSet组件和TADOConnection组件来实现数据库的连接,并以一个课程信息管理程序为例进行说明。
4.1 创建数据文件
新建一个名为‘课程信息’的Excel文件,把表名也重命名为‘课程信息’,并把多默认的另外两个表删除掉。在A1、B1和C1三个单元格中输入课程号、课程名称和学分,并分别在其下面的单元格中输入对应的数据(即课程信息)。
4.2 创建课程信息管理程序
1)新建一个工程,取名为KCxxgl.dpr。
2)把TADOConnection组件放到窗体上,取名为My ADOConnection,并设置其属性。具体过程如下:
(1)单击ConnectionString属性,打开该属性的对话框,选择Use Connection String。
(2)单击Build按钮,打开数据连接属性对话框,在提供程序选项卡中OLE DB的提供者选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这原本是用于连接Access数据库的驱动程序,但也可打开Excel文件。
(3)单击连接选项卡,选择或输入数据名称时,选择刚才新建的名为‘课程信息’的Excel文件。注意,不是Access文件,而是Excel文件。
(4)单击所有选项卡,把扩展属性Extended Properties设置为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。选中Extended Properties,单击编辑值进行设置。
(5)最后回到连接选项卡,单击测试连接,进行数据连接的测试,如果成功,则提示测试连接成功的字样。
3)把TADODataSet组件放到窗体上,取名为MyADODataSet,并设置其属性。具体过程如下:
(1)设置Connection属性值为My ADOConnection。
(2)设置CommandType属性值为cmdTableDirect,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
(3)设置CommandText属性值为刚才新建Excel文件中的名为‘课程信息’的表格。
(4)设置Active属性值为True,用于打开MyADODataSet。
4)把TDataSource组件放到窗体上,取名为MyDataSource,并设置其属性DataSet的值为MyADODataSet,用于把数据源连接到上面建立的数据集中来。
5)把TDBGrid组件放到窗体上,取名为MyDBGrid,并设置其属性。具体过程如下:
(1)设置DataSource属性值为MyDataSource,这样就通过数据源组件MyDataSource把数据集组件MyADODataSet和数据浏览组件MyDBGrid联系起来了。
(2)单击Columns属性,打开Editing MyDBGrid. Columns对话框,单击Add New按钮增加一列,单击选中刚增加的列,设置其FieldName属性值为课程号,并设置其Width属性值为50。再以同样的方法设置‘课程名称’和‘学分’两列。
6)把TDBNavigator组件放到窗体上,取名为MyDBNavigator,并设置其属性DataSource的值为MyDataSource,这样就通过数据源组件MyDataSource把数据集组件MyADODataSet和数据控制组件MyDBNavigator联系起来了。
7)单击运行(F9)按钮,把程序编译起来。结果如图(课程信息管理程序界面)所示,这样我们就可以通过MyDBNavigator组件在MyDBGrid上进行插入数据、删除数据、更新数据以及进行数据记录的移动等数据库常用的操作。
图1课程信息管理程序界面
5 结束语
Microsoft Excel是常用的一种电子表格软件,我们经常用它来处理一些数据。而如何把其中的数据当数据库中的数据利用ADO组件进行访问,就是本文所研究的内容,本文对于在Delphi中利用ADO组件访问Excel文件的技术方法与实现步骤进行了详细的介绍。
参考文献:
[1]吴天准.Delphi7 程序设计技巧与实例[M] 北京 中国铁道出版社,2003
[2]肖帆.Delphi6实用编程教程[M] 北京 北京希望电子出版社,2001
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。