小弟现在在学习SQLSERVER,学到用SQLSERVER读到Excel文件中的数据,现在E盘下有一个222.xlsx文件(office2007的,文件后缀名多一个X)读数据的脚本如下:SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet$]
先说一下自己的操作步骤:
1.先跑脚本如下:--启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
2.跑脚本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" 的数据源对象。在网上查了很多东东,都只放一段脚本,运行后也基本有错误,搞了好长时间了,请各位帮忙高手解决
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="E:\222.xlsx";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet$]
先说一下自己的操作步骤:
1.先跑脚本如下:--启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
2.跑脚本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" 的数据源对象。在网上查了很多东东,都只放一段脚本,运行后也基本有错误,搞了好长时间了,请各位帮忙高手解决
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" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
按照您说的做了一遍,也出现了错误
链接服务器"(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" 的数据源对象。
不能用Password的形式定义数据库密码,应该改成:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd 参考一下面的
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\xxxx.xlsx', 'select * from [Sheet1$]')
肯定可行的...