• 在SQL Server中获取Excel文件中所有Sheet工作表的名称


    创建一个函数:

    代码
     if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[f_sheetname]')   and   xtype   in   (N'FN',   N'IF',   N'TF'))   
      
    drop   function   [dbo].[f_sheetname]   
      
    GO   
    create   function   f_sheetname(   
      
    @ExcelFname   nvarchar(260)   
      )
    returns   @re   table(id   int   identity(1,1),sheetname   nvarchar(100))   
      
    as   
      
    begin   
      
    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   lb_err   
        
      
    exec   @err=sp_oamethod   @obj,'Workbooks.Open'   
      ,
    @icount   out   
      ,
    @ExcelFname   
      
    if   @err<>0   goto   lb_err   
        
      
    exec   @err=sp_oagetproperty   @obj,'ActiveWorkbook.Sheets.Count',@icount   out   
      
    if   @err<>0   goto   lb_err   
      
    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   lb_err   
      
    insert   @re   values(@sheetname)   
      
    set   @icount=@icount-1   
      
    end   
        
      
    exec   @err=sp_oadestroy   @obj   
      
    goto   lb_re   
        
      lb_err:   
      
    exec   sp_oageterrorinfo   0,@src   out,@desc   out   
      
    insert   @re   
      
    select   cast(@err   as   varbinary(4))   as   错误号   
      
    union   all   select   @src   as   错误源   
      
    union   all   select   @desc   as   错误描述   
      lb_re:   
      
    return   
      
    end   
      
    go   

    在查询分析器中可以直接调用:

    select   *   from   f_sheetname('c:\a.xls'
    --查询出的字段名包括id、sheetname  
  • 相关阅读:
    SIT/UAT测试
    Oracle密码过期设置和修改密码问题
    1、查询速度慢的原因很多,常见如下几种:
    dbs:apple-notes
    值不能为 null 或为空。参数名: linkText
    Visual Stadio 2015创建WebApplication应用和运行赏析
    HTTP 错误 500.19
    Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)
    vs2015-Azure Mobile Service
    6.1.1 验证注解的使用
  • 原文地址:https://www.cnblogs.com/lavenderzh/p/1653017.html
Copyright © 2020-2023  润新知