基于Delphi的利用ADO访问Excel文件的技术与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:glosslee
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: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格式阅读原文。
其他文献
摘要:为了提高嵌入式系统对于语音信号处理的速度及稳定性,提出了一种由CPLD芯片来完成串行协议和并行协议之间的协议转换系统,给出了硬件框图,并详细介绍了verilog代码,分模块介绍了CPLD的功能结构。并对于设计过程中的问题给出了合理的解决方案。  关键词:CPLD;Verilo;串行协议  中图分类号:TP336文献标识码:A 文章编号:1009-3044(2007)17-31318-02  
期刊
摘要:以结构化的DHT P2P网络作为分布式平台,探讨一种P2P数据库的数据索引和定位机制。我们主要使用数据复制和分层索引机制来保证高效的实现资源定位,并且避免了Hash对数据语义的破坏,使系统有效的保持数据语义间的联系。  关键字: P2P数据库,资源定位,数据复制  中图分类号:TP311.133.1文献标识码:A文章编号:1009-3044(2007)17-31329-01  A Resou
期刊
摘要:本文介绍了基于MSP430F1111a 单片机的一种低功耗主动式RFID标签的设计,对如何解决主动式RFID标签功耗高,使用时间短,性能不稳定的问题进行探讨,详细阐述了主动式RFID标签的低功耗的设计思想、硬件结构和软件的设计方法。  关键词:射频识别,MSP430单片机,低功耗  中图分类号:TN925+.91文献标识码:A 文章编号:1009-3044(2007)17-31336-01 
期刊
摘要:在软件开发过程中,少不了要使用数据库。Access 2000与SQL Server 2000是目前用得比较多的。由于Access 2000使用简单方便,但安全性差,而SQL Server 2000安全可靠,所以在使用数据库开发或升级软件时必须注意到他们存在的区别。  关键词:Access 2000;SQL Server 2000;区别;升级  中图分类号:TP311文献标识码:A 文章编号:
期刊
摘要:随着Internet的迅速增长以及IPv4地址空间的逐渐耗尽,IPv6作为Internet协议的下一版本,对IPv4的取代将不可避免的成为必然。但是,由于IPv6引入了一些新的特性以及IPv4向IPv6过渡期的存在,也带来了一些安全上的新的风险和威胁,同时和传统的IPv4网络相比,一些固有的安全问题仍然没有得到很好地解决,因此,研究基于IPv6的下一代网络安全关键技术将具有重要的现实意义。本
期刊
摘要:多态性是面向对象的重要特性之一,Java中的多态体现在类的继承和实现接口等方面。本文就JAVA语言支持的多态性作了深入全面的探讨,在此基础上,结合例子说明了多态性在程序设计中的应用。  关键词:Java语言;多态性; 类;接口  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)17-31349-01  An Study on Java’s Dynamic Pol
期刊
摘要:短信技术除了在人们日常的信息交流外,还可以在企业生产管理中得到广泛的应用。本文就SMGP协议、SP接入技术以及它们在电信业务支撑系统中的实现方法做详细说明。  关键词:短信技术;SP;SPMS;SMGP协议  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)17-31277-03  The Application of PHS SMS SP Access Tec
期刊
摘要:Java语言凭借跨平台、面相对象、功能强大等优点,已经成为现在最流行的语言之一。在J2EE web项目中,有一种常见的应用被称作作业调度的应用。文中对作业调度的应用背景进行了归纳总结,并结合实例对作业调度的实现步骤进行了介绍,有助于读者从整体上快速掌握作业调度的概念和实现。同时只要对实例进行简单的修改就可以进行实际应用,具有较强的适用价值。  关键词:作业调度;Quartz;Java邮件服务
期刊
摘要:为了解决高校等机构学位论文的查询问题,运用ASP技术及SQL SERVER数据库技术,设计并开发了基于B/S结构的高校学位论文检索系统。所开发的系统运行稳定,功能齐全,很好的满足了学位论文的查询需求,为学术文献的充分利用提供了有力支撑。  关键词:学位论文检索;ASP技术;SQL Server;B/S模式  中图分类号:TP392:J642.477文献标识码:A 文章编号:1009-3044
期刊
摘要:本文介绍了一种基于ARM7TDMI处理器的数据采集模块的实现方法。该模块可以对电压、电流、热电阻、热电偶、开关量等多种物理量进行测量。ARM处理器与数据采集模块之间采用模拟SPI协议进行数据传输。为了实现高精度,采用了24位A/D。经过对电路的多次改进,该模块目前已能测准到万分之一的精度,优于现在的工业标准。  关键词:ARM;多通道;高精度;数据采集  中图法分类号: TP806文献标识码
期刊