资源描述:
《表数据导出到excel并进行分页处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、USE[DBNAME]GO/******Object:StoredProcedure[dbo].[ExportToExcel]ScriptDate:03/18/201113:16:39******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO/*********************************************************************************************************************导出数据到EXCEL中且每页为65535条数据,包
2、含字段名,文件为真正的Excel文件格式。如果文件不存在,将自动创建文件,存在将不导出。如果表不存在,将自动创建表。基于通用性考虑,仅支持导出标准数据类型。--Creatorbyzoujian2003.10--增加分页功能,每页65000条。--Addbyxiexiaoman--修改分页功能,每页65535条。--Addbyliujunxiong2011.03.18--1、修改在SQL2005/2008下配置项没有打开,解决权限的问题;--2、修改表带自增列导出报错的问题。--调用示例execExportToExcel@ExcSql='select*from[
3、TABLENAME]',@SavePath='D:',@FileName='Test.xls',@SheetName='[TABLENAME]'--存在的问题:--1、文件只能导出到服务器进行保存。***********************************************************************************************************************/CREATEproc[dbo].[ExportToExcel]@ExcSqlvarchar(8000),--查询语句,如果查询
4、语句中使用了orderby,请加上top100percent@SavePathnvarchar(1000),--文件存放目录@FileNamenvarchar(250),--文件名@SheetNamevarchar(250)=''--要创建的工作表名,默认为文件名asdeclare@errint,@srcnvarchar(255),@descnvarchar(255),@outintdeclare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000),@tmpsqlvarchar
5、(8000)declare@sheetcountint,@sheetnowint,@recordcountint,@recordnowintdeclare@sheetsqlvarchar(8000)--创建页的sqldeclare@pagesizeintset@pagesize=65535--Sheet分页的大小--参数检测ifisnull(@FileName,'')=''set@FileName='temp.xls'ifisnull(@SheetName,'')=''set@SheetName=replace(@FileName,'.','#')--检查文件
6、是否已经存在ifright(@SavePath,1)<>''set@SavePath=@SavePath+''createtable#tb(abit,bbit,cbit)set@sql=@SavePath+@FileNameinsertinto#tbexecmaster..xp_fileexist@sql--数据库创建语句set@sql=@SavePath+@FileNameifexists(select1from#tbwherea=1)set@constr='DRIVER={MicrosoftExcelDriver(*.xls)};DSN='''';RE
7、ADONLY=FALSE'+';CREATE_DB="'+@sql+'";DBQ='+@sqlelseset@constr='Provider=Microsoft.Jet.OLEDB.4.0;ExtendedProperties="Excel8.0;HDR=YES'+';DATABASE='+@sql+'"'--打开配置项execsp_configure'showadvancedoptions',1;reconfigure;execsp_configure'OleAutomationProcedures',1;reconfigure;execsp_config
8、ure'AdHocDistribute