分享

导入Excel数据

 reegon 2013-01-08

用Delphi向Firebird中导入Excel数据 - [Delphi]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://andy1204./logs/30659209.html

这几天在写一个串口通讯的小程序,需要把Excel文件中的基本数据导入到数据库中,我所用的数据库是Firebird,不能直接写sql语句打开excel文件,只能用ADO控件来打开Excel,然后读出ADO中的记录,逐条插入数据库中,具体的ADO读取Excel文件设置如下(引用):


第一部分:
1. 设置ADOConnection的ConnectionString属性的OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider(这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件),按 "下一步"按钮

2. 选择数据库名称。注意:Excel的扩展名是*.xls,而默认文件类型是Microsoft Access 数据库(*.mdb), 我们就选择"全部文件(*.*)"吧,接着选择我们要连接的Excel文件咯!!如果在当前路径,就直接填2007.xls。 这时先别慌按 "测试连接"按钮,不然会出现错误对话框的。可以试试看,了解一下 ^_^

3. 在"所有"选项卡中找到 "Extended Properties",双击它或者按"编辑值"按钮,设置Extended Properties为"Excel 8.0 "。

4. 我们返回"连接"选项卡,按 "测试连接"按钮。测试连接成功!!! ^_^ 最后,设置完成后的ConnectionString中的各项参数为: Provider=Microsoft.Jet.OLEDB.4.0 Data Source=2007.xls //因为在当前路径 Extended Properties=Excel 8.0 Persist Security Info=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。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多