zoukankan      html  css  js  c++  java
  • 在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  
  • 相关阅读:
    易耗品管理 第三四表 查询的存储过程
    [zz]使用vc编译libsvm
    程序调试小bug
    Ubuntu下安装配置OpenNI, OpenCV
    关于Linux下使用OpenCv读取视频打不开的问题
    jQuery实现图片点击放大
    关于 QtDBus 的种种
    javascript计时器的实现
    [QT]没有选择Debug构建方式.为文件的某行设置断点可能会失败
    linux firefox 不显示英文的解决
  • 原文地址:https://www.cnblogs.com/lavenderzh/p/1653017.html
Copyright © 2011-2022 走看看