Sql Server数据导出EXCEL
还是在用Sql Server2000的,放出一个修改过的Sql
Server数据导出EXCEL存储过程,提供了分sheet功能,之前的版本是没有这个功能的,解决超过65535行的问题。
CREATE proc p_exporttb
@sqlstr varchar(8000), --查询语句,如果查询语句中使用了order by ,请加上top 100 percent
@path nvarchar(1000), --文件存放目录
@fname nvarchar(250), --文件名
@sheetname varchar(250)='' --要创建的工作表名,默认为文件名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out
int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist
varchar(8000),@tmpsql varchar(8000)
declare @sheetcount int,@sheetnow int, @recordcount int, @recordnow
int
declare @sheetsql varchar(8000)--创建页的sql
declare @pagesize int
set @pagesize = 65535--sheet分页的大小
--set @pagesize = 1000
--参数检测
if isnull(@fname,'')='' set @fname='temp.xls'
if isnull(@sheetname,'')='' set
@sheetname=replace(@fname,'.','#')
--检查文件是否已经存在
if right(@path,1)<>'\' set
@path=@path+'\'
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver
(