如何从excel表中读取数据 倒入到sql server中
解决方案 »
- delphi中findfirst函数中文SearchRec.Name<>'.'和SearchRec.Name<>'..'是什么意思
- RichEdit中的文本text怎么存成txt文件,以便用计事本打开?,使用TStrings 的savetofile有点问题。
- 关于如何得到外部传递过来的参数值问题(难题)
- <跪求!!>大家好!我想请问一下DELPHI怎样用ADO连接到另一台电脑的ORACLE数据库上
- 关于制作帮助文件的问题?
- 求下载地址!!!
- 取得汉字的点阵
- 请问adoquery控件使用UpdateRecord方法更新,提示为不在插入或修改模式要如何解决?
- 各位高人,sql server 7单机版随程序一起发布的问题总结,高分送给!
- TIdTCPServer在Execute时自动退出
- 一个调查,给分200。(关心一下大家的健康状态,大家每天坐着,都锻炼不?)
- 怎么用quickreport设计一个“主表-明细表”形式的报表
只用一个TADOTable or TADOQuery就可;
数据集之间的操作你应该会的;//////表名: Sheet$ -> [Sheet$]
方法2 利用delphi 控件bacthmove (data access) ,把excel 第一行
编辑成字段名,程序中用odbc 打开excel 文件,做为bacthmove 的源
目的取sql server 上
在DELPHI中使用ADO直接访问Excel数据文件
1.设置ADOConnection的ConnectionString
构造ConnectionString时,OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件。
连接的数据库名称当然就是你要打开的Excel文件,注意扩展名是*.xls,而不是*.mdb。
最关键的一点是,还要设置扩展属性Extended Properties为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。Extended Properties的属性值在“所有”参数页中输入。
最后,设置完成后的ConnectionString中的各项参数为:
Provider=Microsoft.Jet.OLEDB.4.0
Data Source=MyExcelFile.xls
Extended Properties=Excel 8.0
Persist Security Info=False2.设置ADODataSet或ADOTable
将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection,也可以参照上面的方法直接设置ADODataSet或ADOTable的ConnectionString属性。
对于ADODataSet,需要将CommandType属性设置为cmdTableDirect,而对于ADOTable,则将TableDirect属性设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
然后,当你下拉ADODataSet中的CommandText属性或ADOTable的TableName属性时,就可以选择到要打开的工作表了。注意,表名后面多了加一个$符号。
3.打开ADODataSet或ADOTable
另外还有一种方法:
EXEC sp_addlinkedserver 'ExcelSource',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'D:\zhi.XLS',
NULL,
'Excel 8.0'EXEC sp_addlinkedsrvlogin ExcelSource, FALSE, NULL, NULL
select * from ExcelSource...Sheet1$ //这里改为插入操作即可
EXEC sp_droplinkedsrvlogin 'ExcelSource', NULL
EXEC sp_dropserver ExcelSource