出错信息:服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。

解决方案 »

  1.   

    f:\test.xls !!!路径是相对于 SQL Server 所在机器的!
      

  2.   

    f:\test.xls
    是放在本地机器上的
    只要放在sql server所在机器就行了吗
    有没有办法不放在本地机器上就能导入啊
      

  3.   

    excel文件必须在数据库服务器上,而不是你的本机.
      

  4.   

    如果你的excel文件和sql不在同一台电脑.可以共享excel文件所在的目录,然后用类似下面的语句:select * into #t  
       from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
       'Excel .0;HDR=YES;DATABASE=\\计算机名\共享目录名\test.xls',sheet1$)
      

  5.   

    我把文件拷到sql server所在的机器上以后.出错了:
    服务器: 消息 7314,级别 16,状态 1,行 1
    OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 不包含表 'sheet1$'。该表可能不存在,或当前用户没有使用该表的权限。
      

  6.   

    我没有改那个excel的呀,表sheet1$也有的
      

  7.   

    也可以借助access来做中间过程.方法如下下:
    打开access,随机打开一个数据库,没有的话就新建一个空库
    然后点查询--新建--设计视图--再在菜单--视图中选择sql视图然后输入下面的查询语句,并执行就行了.(注意根据你的情况做适当调整)select * into
    [ODBC;Driver=SQL Server;Server=SQL服务器名;Uid=用户名;Pwd=密码;database=数据库名].要生成的表名
    FROM [Excel 5.0;HDR=YES;DATABASE=F:\test.xls].[sheet1$];
      

  8.   

    sheet1是工作表名,$是在SQL中查询需要加的一个符号select * into #t  
       from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
       'Excel .0;HDR=YES;DATABASE=\\计算机名\共享目录名\test.xls',[sheet1$])
      

  9.   

    --用下面的语句测试一下,看你的excel中有那些工作表--得到Excel文件中的所有工作表名declare @err int,@src varchar(255),@desc varchar(255)
    declare @obj int,@icount int,@sheetname varchar(200)exec @err=sp_oacreate 'Excel.Application',@obj out
    if @err<>0 goto lberrexec @err=sp_oamethod @obj,'Workbooks.Open',@icount out,'c:\csdn.xls'  --你的Excel文件名
    if @err<>0 goto lberrexec @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
    endexec @err=sp_oadestroy @obj
    returnlberr:
    exec sp_oageterrorinfo 0,@src out,@desc out
    select cast(@err as varbinary(4)) as 错误号
    ,@src as 错误源,@desc as 错误描述
      

  10.   

    我把它改成这样:
    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' 报错。提供程序未给出有关错误的任何信息。
      

  11.   

    错误号:0x800A03EC
    错误源:Microsoft Excel
    错误描述:
    Microsoft Excel 无法找到“\\mycomputer\test\test.xls”。请检查工作簿名称的拼写,并确认文件位置是否正确。  如果是
      

  12.   

    我把excel 拷到sql server服务器上去,然后把这句改成
    exec @err=sp_oamethod @obj,'Workbooks.Open',@icount out,'e:\csdn.xls'
    还是
    错误号:0x800A03EC
    错误源:Microsoft Excel
    错误描述:
    Microsoft Excel 无法找到“e:\test.xls”。请检查工作簿名称的拼写,并确认文件位置是否正确。  如果是
      

  13.   

    不好意思,刚才把目录test打成text了