日期:2014-05-17  浏览次数:20396 次

紧急求救!SQL2005存储过程导出EXCEL打不开。
我的存储过程如下现在的问题是执行存储过程是成功的,但导出的EXCEL只有6KB,而且打不开,删也删不掉。
我机器上装了OFFICE2007,VS2008SP1。喜欢各位大侠帮帮忙,项目急用。而这个机器在公司部分的机器上是成功的,在server2003上是成功的。
GO
/****** 对象:  StoredProcedure [dbo].[H_SqlToExcel]    脚本日期: 03/23/2010 17:25:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
    
  ALTER   PROC   [dbo].[H_SqlToExcel]   
  (   
  @Path                   varchar(100),--文件存放路径   
  @Fname                 varchar(100),--文件名字   
  @SheetName         varchar(80),---工作表名字   
  @SqlStr               varchar(8000)--查询语句,如果查询语句中使用了order       by       ,请加上top       100       percent,注意,如果导出表/视图,用上面的存储过程       
  /*
  exec H_SqlToExcel 'c:\','test2.xls','sheet1','SELECT TOP 10 PersonName FROM PersonalBaseInfo' 
  */
  )   
  AS   
  SET   NOCOUNT   ON   
    
  declare     @sql                 varchar(8000)   
  declare     @obj                 int--OLE对象   
  declare     @constr           varchar(8000)   
  declare     @err                 int   
  declare     @out                 int   
  declare     @fdlist           varchar(8000)   
  declare     @tbname           sysname--临时表   
  declare     @Src                 nvarchar(200)   
  declare     @Desc               nvarchar(200)   
    
  set   @tbname='##tmp_'+convert(varchar(38),newid())   
    
  exec('select   *   into   ['+@tbname   +']   from   '+'('+@sqlStr+')   A')   
    
  select   @fdlist   =   ''