求一句SQL 查询Excel工作表中的数据,谢谢!

时间:2021-10-10 15:11:21
Excel 工作表(商品表)第一行为字段名,想查询字段”类别=电视“的所有条目(返回“品牌,产地”字段)。
我用以下这句:
select * from [Excel 12.0;Database=G:\book1.xls].[ 商品表$A1:AC464]   where  类别 ='电视'

提示错误:
对象名 'Excel 12.0;Database= G:\book1.xls.商品表$A1:AC464' 无效。

还请高手指导,谢谢!

10 个解决方案

#1


SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式

#2


引用 1 楼 DBA_Huangzj 的回复:
SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式



请问省略号的地方应该写什么?谢谢

#3


引用 2 楼 mansohu 的回复:
Quote: 引用 1 楼 DBA_Huangzj 的回复:

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式



请问省略号的地方应该写什么?谢谢
不用写什么

#4


那个是架构名,默认是dbo,除非你的数据库设置了多个架构

#5


引用 1 楼 DBA_Huangzj 的回复:
SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式


十分感谢!
请问,Admin是什么?应该填什么?我那个Exce(是没有密码,另外还想问一句:Excel也有架构吗?谢谢!

#6


userid就是登录名,这里只是假设为admin,是sqlserver的东西,不是excel

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=sa;Password=123456;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

这样会不会清晰一点?出门上班去。你不懂的话搜一下OpenDataSource的用法

#7


引用 6 楼 DBA_Huangzj 的回复:
userid就是登录名,这里只是假设为admin,是sqlserver的东西,不是excel

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=sa;Password=123456;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

这样会不会清晰一点?出门上班去。你不懂的话搜一下OpenDataSource的用法


上班试了一下这个方法,提示:
因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
好像以前碰到过,不知为什么放弃 了,请问还有别的方法吗?谢谢了!

#8


你可以把excel先导进sqlserver再查询

#9


 SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

把4.0改成12.0试试

#10


环境:SQL2008+Office2007
select * from opendatasource('microsoft.ace.oledb.12.0','excel 12.0;hdr=yes;imex=0;data source=D:\book1.xls')...[Sheet1$] where 类别='电视'

#1


SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式

#2


引用 1 楼 DBA_Huangzj 的回复:
SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式



请问省略号的地方应该写什么?谢谢

#3


引用 2 楼 mansohu 的回复:
Quote: 引用 1 楼 DBA_Huangzj 的回复:

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式



请问省略号的地方应该写什么?谢谢
不用写什么

#4


那个是架构名,默认是dbo,除非你的数据库设置了多个架构

#5


引用 1 楼 DBA_Huangzj 的回复:
SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

试下这种格式


十分感谢!
请问,Admin是什么?应该填什么?我那个Exce(是没有密码,另外还想问一句:Excel也有架构吗?谢谢!

#6


userid就是登录名,这里只是假设为admin,是sqlserver的东西,不是excel

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=sa;Password=123456;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

这样会不会清晰一点?出门上班去。你不懂的话搜一下OpenDataSource的用法

#7


引用 6 楼 DBA_Huangzj 的回复:
userid就是登录名,这里只是假设为admin,是sqlserver的东西,不是excel

SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=sa;Password=123456;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

这样会不会清晰一点?出门上班去。你不懂的话搜一下OpenDataSource的用法


上班试了一下这个方法,提示:
因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
好像以前碰到过,不知为什么放弃 了,请问还有别的方法吗?谢谢了!

#8


你可以把excel先导进sqlserver再查询

#9


 SELECT * FROM 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\国通物流\出口报关单.xls";
User ID=Admin;Password=;Extended properties=Excel 4.0')...[非一般贸易默认值$] 

把4.0改成12.0试试

#10


环境:SQL2008+Office2007
select * from opendatasource('microsoft.ace.oledb.12.0','excel 12.0;hdr=yes;imex=0;data source=D:\book1.xls')...[Sheet1$] where 类别='电视'