select * into #t
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'Excel .0;HDR=YES;DATABASE=f:\test.xls',sheet1$)
说明:当前数据库不是本地数据库(如果是本地数据库语句能执行成功)
请各位牛人帮我分析一下原因,有没有办法解决
...全文
29119打赏收藏
将excel导入到数据库问题
select * into #t from OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel .0;HDR=YES;DATABASE=f:\test.xls',sheet1$) 说明:当前数据库不是本地数据库(如果是本地数据库语句能执行成功) 请各位牛人帮我分析一下原因,有没有办法解决
我把它改成这样:
select * into #t from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=\\mycomputer\test\test.xls',sheet1$)
还是出错了:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
exec @err=sp_oacreate 'Excel.Application',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'Workbooks.Open',@icount out,'c:\csdn.xls' --你的Excel文件名
if @err<>0 goto lberr
exec @err=sp_oagetproperty @obj,'ActiveWorkbook.Sheets.Count',@icount out
if @err<>0 goto lberr
select @icount
while @icount>0
begin
set @src='ActiveWorkbook.Sheets('+cast(@icount as varchar)+').Name'
exec @err=sp_oagetproperty @obj,@src,@sheetname out
if @err<>0 goto lberr
print @sheetname
set @icount=@icount-1
end
exec @err=sp_oadestroy @obj
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述