数据库读取Excel数据
读数据的脚本如下:
SQL code
SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet$]
先说一下自己的操作步骤:
1.先跑脚本如下:
SQL code
--启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure
2.跑脚本
SQL code
SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet$]
跑完步骤2出现了错误提示
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "外部表不是预期的格式。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
在网上查了很多东东,都只放一段脚本,运行后也基本有错误,搞了好长时间了,请各位帮忙高手解决
作者: yanhahamade 发布时间: 2011-06-16
作者: cd731107 发布时间: 2011-06-16
--試試看 SELECT * FROM OpenDataSource ( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet$]
作者: playwarcraft 发布时间: 2011-06-16
作者: zy112429 发布时间: 2011-06-16
SQL code
--試試看
SELECT *
FROM OpenDataSource ( 'Microsoft.ACE.OLEDB.12.0',
'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet$]
运行以后,出错别外一个错误
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
作者: yanhahamade 发布时间: 2011-06-16
E:\222.xlsx,这个另存为兼容excl 97-2003的格式,即文件后缀名应该是xls,而不是xlsx
按照您说的做了一遍,也出现了错误
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
消息 7399,级别 16,状态 1,第 2 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 2 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
作者: yanhahamade 发布时间: 2011-06-16
作者: yanhahamade 发布时间: 2011-06-16
作者: zy112429 发布时间: 2011-06-16
引用 1 楼 cd731107 的回复:
E:\222.xlsx,这个另存为兼容excl 97-2003的格式,即文件后缀名应该是xls,而不是xlsx
按照您说的做了一遍,也出现了错误
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。……
你导入的时候,这个excl是不是同时被打开了
作者: cd731107 发布时间: 2011-06-16
把桌面打开的excel文件关闭了再试试。
excel文件一直是关闭的。
作者: yanhahamade 发布时间: 2011-06-16
作者: cd731107 发布时间: 2011-06-16
ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"
不能用Password的形式定义数据库密码,应该改成:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd
参考一下面的
作者: cd731107 发布时间: 2011-06-16
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\xxxx.xlsx', 'select * from [Sheet1$]')
肯定可行的...
作者: Davily 发布时间: 2011-06-16