在Delphi中使用ADO连接Excel2009-08-27下午01:30
今天在Delphi中使用ADO连接Excel(以前在一本书看过,复习一下-_-!!),有所收获,不敢独享。第一部分:1.设置ADOConnection的ConnectionString属性的OLEDB的提供者要选择MicrosoftJet4.0OLEDBProvider(这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件),按下一步按钮2.选择数据库名称。注意:Excel的扩展名是
*.xls,而默认文件类型是MicrosoftAccess数据库(*.mdb),我们就选择全部文件(*.*)吧,接着选择我们要连接的Excel文件咯!!如果在当前路径,就直接填2007.xls。这时先别慌按测试连接按钮,不然会出现错误对话框的。可以试试看,了解一下^_^3.在所有选项卡中找到 ExtendedProperties,双击它或者按编辑值按钮,设置ExtendedProperties为Excel8.0。4.我们返回连接选项卡,按测试连接按钮。测试连接成功!! ^_^最后,设置完成后的ConnectionString中的各项参数为:Provider=Microsoft.Jet.OLEDB.4.0
DataSource=2007.xls//因为在当前路径ExtendedProperties=Excel8.0
PersistSecurityInfo=False第二部分:接着就用ADOTable,ADODataSet和ADOQuery连接到刚才的ADOConnection,当然你可以直接设置ADOTable,ADODataSet或ADOQuery的ConnectionString属性。1.ADOTable设置:a.ADOTable的TableName属性值:系统自动生成Excel的Sheet1$,Sheet2$和Sheet3$。直接Active设置成true,系统会报告SQL语句格式错误等信息。b.找到TableDirect属性,设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。接着将Active设置成true。成功了!!^_^c.可以不使用TableDirect属性,将TableName属性中的Sheet1$,Sheet2$和Sheet3$分别改成[Sheet1$],[Sheet2$]和[Sheet3$]。对,就是加[]就行了。2.ADODataSet设置:a.只需要将CommandType属性设置为cmdTableDirect,选择工作表,Active设置成true就成功了。b.也可以将CommandType属性设置为cmdTable,将CommandText属性中改成[Sheet1$],[Sheet2$]和[Sheet3$]。3.ADOQuery设置:SQL属性如下:
select*from[sheet1$]总结:复习以前所学的,尝试新的连接方法,有益于加深记忆。我发现工作表名后面都要多加一个$符号,还有就是打开ADOTable,ADODataSet或者ADOQuery以后,它们的CursorType自动变成ctStatic。