- 爱易网页
-
ASP.NET教程
- 紧急SQL2005存储过程导出EXCEL打不开
日期:2014-05-17 浏览次数:20427 次
紧急求救!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 = ''