将Sql server中数据导出到excel

合集下载

SQLServer中导入导出数据的三种方式(二)

SQLServer中导入导出数据的三种方式(二)

(2)灵活度不同。

OPENDATASOURCE只能打开相应数据库中的表或视图,如果需要过滤的话,只能在SQLServer中进⾏处理。

⽽OPENROWSET可以在打开数据库的同时对其进⾏过滤,如上⾯的例⼦,在OPENROWSET中可以使⽤
SELECT*FROMtable1对abc.mdb中的数据表进⾏查询,⽽OPENDATASOURCE只能引⽤table1,⽽⽆法查询table1。

因此,OPENROWSET⽐较OPENDATASOURCE更加灵活。

2.使⽤命令⾏BCP导⼊导出数据
很多⼤型的系统不仅仅提供了友好的图形⽤户接⼝,同时也提供了命令⾏⽅式对系统进⾏控制。

在SQLServer中除了可以使⽤SQL语句对数据进⾏操作外,还可以使⽤⼀个命令⾏⼯具BCP对数据进⾏同样的操作。

BCP是基于DB-Library客户端库的⼯具。

它的功能⼗分强⼤,BCP能够以并⾏⽅式将数据从多个客户端⼤容量复制到单个表中,从⽽⼤⼤提⾼了装载效率。

但在执⾏并⾏操作时要注意的是只有使⽤基于ODBC或SQLOLEDB的API的应⽤程序才可以执⾏将数据并⾏装载到单个表中的操作。

BCP可以将SQLServer中的数据导出到任何OLEDB所⽀持的数据库的,如下⾯的语句是将authors表导出到excel⽂件中。

bcppubs.dbo.authorsoutc:\temp1.xls
-c-q-S"GNETDATA/GNETDATA"-U"sa"-P"password"。

SQLServer导出表到EXCEL文件的存储过程

SQLServer导出表到EXCEL文件的存储过程

SQL Server导出表到EXCEL⽂件的存储过程: *--数据导出EXCEL 导出表中的数据到Excel,包含字段名,⽂件为真正的Excel⽂件 ,如果⽂件不存在,将⾃动创建⽂件 ,如果表不存在,将⾃动创建表 基于通⽤性考虑,仅⽀持导出标准数据类型 ---*/ /**//*--调⽤⽰例 p_exporttb @tbname='地区资料',@path='c:',@fname='aa.xls' --*/ if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[p_exporttb] GO create proc p_exporttb @tbname sysname, --要导出的表名,注意只能是表名/视图名 @path nvarchar(1000), --⽂件存放⽬录 @fname nvarchar(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) --参数检测 if isnull(@fname,'')='' set @fname=@tbname+'.xls' --检查⽂件是否已经存在 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 (*.xls)};DSN='''';READONLY=FALSE' +';CREATE_DB="'+@sql+'";DBQ='+@sql else set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES' +';DATABASE='+@sql+'"' --连接数据库 exec @err=sp_oacreate 'adodb.connection',@obj out if @err<>0 goto lberr exec @err=sp_oamethod @obj,'open',null,@constr if @err<>0 goto lberr --创建表的SQL select @sql='',@fdlist='' select @fdlist=@fdlist+','+ ,@sql=@sql+',['++'] ' +case when in('char','nchar','varchar','nvarchar') then 'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')' when in('tynyint','int','bigint','tinyint') then 'int' when in('smalldatetime','datetime') then 'datetime' when in('money','smallmoney') then 'money' else end FROM syscolumns a left join systypes b on a.xtype=b.xusertype where not in ('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp') and object_id(@tbname)=id select @sql='create table ['+@tbname +']('+substring(@sql,2,8000)+')' ,@fdlist=substring(@fdlist,2,8000) exec @err=sp_oamethod @obj,'execute',@out out,@sql if @err<>0 goto lberr exec @err=sp_oadestroy @obj --导⼊数据 set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES ;DATABASE='+@path+@fname+''',['+@tbname+'$])' exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from '+@tbname) return lberr: exec sp_oageterrorinfo 0,@src out,@desc out lbexit: select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述 select @sql,@constr,@fdlist go *--数据导出EXCEL 导出查询中的数据到Excel,包含字段名,⽂件为真正的Excel⽂件 ,如果⽂件不存在,将⾃动创建⽂件 ,如果表不存在,将⾃动创建表 基于通⽤性考虑,仅⽀持导出标准数据类型 --*/ /**//*--调⽤⽰例 p_exporttb @sqlstr='select * from 地区资料' ,@path='c:',@fname='aa.xls',@sheetname='地区资料' --*/ if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[p_exporttb] GO create proc p_exporttb @sqlstr sysname, --查询语句,如果查询语句中使⽤了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) --参数检测 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 (*.xls)};DSN='''';READONLY=FALSE' +';CREATE_DB="'+@sql+'";DBQ='+@sql else set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES' +';DATABASE='+@sql+'"' --连接数据库 exec @err=sp_oacreate 'adodb.connection',@obj out if @err<>0 goto lberr exec @err=sp_oamethod @obj,'open',null,@constr if @err<>0 goto lberr --创建表的SQL declare @tbname sysname set @tbname='##tmp_'+convert(varchar(38),newid()) set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a' exec(@sql) select @sql='',@fdlist='' select @fdlist=@fdlist+','+ ,@sql=@sql+',['++'] ' +case when in('char','nchar','varchar','nvarchar') then 'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')' when in('tynyint','int','bigint','tinyint') then 'int' when in('smalldatetime','datetime') then 'datetime' when in('money','smallmoney') then 'money' else end FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype where not in ('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp') and a.id=(select id from tempdb..sysobjects where name=@tbname) select @sql='create table ['+@sheetname +']('+substring(@sql,2,8000)+')' ,@fdlist=substring(@fdlist,2,8000) exec @err=sp_oamethod @obj,'execute',@out out,@sql if @err<>0 goto lberr exec @err=sp_oadestroy @obj --导⼊数据 set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES ;DATABASE='+@path+@fname+''',['+@sheetname+'$])' exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']') set @sql='drop table ['+@tbname+']' exec(@sql) return lberr: exec sp_oageterrorinfo 0,@src out,@desc out lbexit: select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述 select @sql,@constr,@fdlist go。

在SE中建立与SQL大数据库连接并导出EXCEL报表

在SE中建立与SQL大数据库连接并导出EXCEL报表

在SE中建立与SQL数据库连接并使用EXCEL 连接SQL数据库自动生成数据公共部分:(本文中默认设置更具实际要求设置)1、如果安装完Factory View Studio,首先确认“开始-->所有程序- ->Microsoft SQL Server 2008 R2 --> SQL Server Management Studio”(7.0以上版本)是否存在,如图所示:(开始-->所有程序- ->Microsoft SQL Server 2008--> SQL Server Management Studio[7.0版本])2、如果不存在,则在Factory View Studio安装包中找到“Redist-->SQLServerEXPR_2008R2SP2-->SQL Server Install.bat”点击安装,安装步骤如图所示:3、点击‘Close’,安装完毕。

出现“开始-->所有程序- ->Microsoft SQL Server 2008 R2 -->SQL Server Management Studio ”,如图所示:如图所示:(记住Sever name,本例为LENOVO-8KADFMC8\SQLEXPRESS)5、右击‘Database’,点击‘New Database’新建一个数据库,命名为READ,其余设置默认,如图所示:(READ-->Tables中未有AB提供的Tag/Float/String Table)6、打开Factory View Studio SE,右击“数据记录-->数据记录模型”,点击‘新建’,如图所示:7、在‘存储格式’中选择‘ODBC数据库’,点击‘ODBC数据库’右侧的‘…’按钮弹出‘选择数据源’对话框,在‘文件数据源’中点击‘新建’,弹出‘创建新数据源’,选择‘系统数据源(只用于当前机器)’,点击‘下一步’,如下图所示:8、选择数据源驱动程序‘SQL Server’,点击‘下一步’,完成驱动选择,如图所示:9、点击‘完成’,弹出‘创建到SQL Server的数据源’对话框,在‘名称’中输入READ(最好与SQL数据库中创建的数据库名称一致),在‘服务器’栏中下拉选择该服务器名称(与SQL创建时Server Name一致),点击‘下一步’,默认设置(本例不设置密码),点击‘下一步’,勾选‘更改默认的数据库’,下拉选择创建的READ,其余设置默认,点击‘下一步’,设置默认,点击‘完成’,弹出‘ODBC Microsoft SQL Server安装’对话栏,点击‘确定’,完成文件数据源创建,如图所示:10、点击‘系统数据源’,选择创建的READ数据源,点击‘确定’,在‘ODBC 数据源’显示创建的READ数据源,如图所示:11、点击‘创建表’弹出下图提示,点击‘确定’,如图所示:12、点击‘模型中的标签’,点击‘要添加的标签’右侧的‘…’按钮,弹出‘标签浏览器’对话框,选择所需标签,点击‘添加标签到列表’,点击‘确定’,如图所示:13、在‘要添加的标签’栏中显示所需标签名称,点击‘添加’,如图显示则添加成功:14、在‘记录触发器’中设置数据记录周期,本例设置为周期10S(更具实际要求设置),如图所示:(路径与文件管理本例默认)15、点击‘确定’,完成设置,组件名称任意。

SQL数据库表如何导入导出到EXCEL中

SQL数据库表如何导入导出到EXCEL中

一.导出1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Export Data…”进入“DTS Import/Export Wizard”窗口。

2.点击“下一步”,进入“Choose a Data Source”。

3.“Data Source”更改为“Microsoft OLE DB Provider for SQL Server”;“Server”更改为“笔记本(工控机)名称\WINCC”;下一步使用WINDOWS认证“Use Windows Authentication”;“Database”更改为“项目运行系统下的路径(例如:CC_BGSYJ_14_02_24_11_22_22R)”。

4. 点击“下一步”,进入“Choose a destination”。

5.“Destination”更改为“Microsoft Excel 97-2000”;“File name”建议更改为要导出的数据库表的名字,并指定保存的路径。

6.点击“下一步”,进入“Specify Table Copy Query”。

7. 点击“下一步”,进入“Select Source Table and Views”。

8.选择要导出的数据库表,然后点击“下一步”,进入“Save,Schedule,and replicate package”。

9. 点击“下一步”,“完成”,“确定”,“Done”,数据导出完成。

二.导入1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Import Data…”进入“DTS Import/Export Wizard”窗口。

2. 点击“下一步”,进入“Choose a Data Source”。

3.“Data Source”更改为“Microsoft Excel 97-2000”;“File name”选择到指定路径下excel文档(重新制作或者以前导出的)。

SqlServer2008如何将数据表导出Excel文件?

SqlServer2008如何将数据表导出Excel文件?

SqlServer2008如何将数据表导出Excel⽂件?
1、⾸先在测试数据库中创建要导出Excel的数据
--创建⼀个民族表--
create table BdsNation(
Uid int not null,
Code varchar(10) not null,
Name varchar(20) not null,
Notes varchar(59) null
)
--插⼊数据
insert into BdsNation(Uid,Code,Name,NOtes)
values(1,'001','汉族','汉族123');
insert into BdsNation(Uid,Code,Name,NOtes)
values(2,'002','满族','满族123');
--查询数据--
select*from BdsNation;
2、导出数据的操作步骤
1)右键数据库,选择任务-->导出数据
2)选择数据源,默认Sql Server版本,默认导出数据库,点击下⼀步
3)选择导出⽬标,选择Microsoft Excel,选择要导出Excel路径,点击下⼀步
4)指定表复制或查询,第⼀种复制⼀个表数据,第⼆种可根据查询复制数据
5)选择源表和源视图,选择导出数据表,点击下⼀步
6)查看数据类型映射,点击下⼀步
7)保存并运⾏包,点击完成
8)点击完成,出现执⾏成功
3、导出后,打开Excel⽂件,查看结果。

sqlserve 快速导出excel方法

sqlserve 快速导出excel方法

SQL Server 是一种强大的关系型数据库管理系统,它可以帮助用户存储和管理大量结构化数据。

在实际工作中,我们经常需要将数据库中的数据导出到 Excel 表格中进行分析和处理。

本文将介绍 SQL Server 快速导出 Excel 的方法,希望对大家有所帮助。

1. 使用 SQL Server Management Studio 导出数据我们可以使用 SQL Server Management Studio(SSMS)自带的功能来快速导出数据到 Excel。

具体操作步骤如下:打开 SQL Server Management Studio,并连接到相应的数据库实例。

在 Object Explorer 中找到需要导出数据的数据库,展开该数据库,找到要导出数据的表。

右键点击该表,选择 "Tasks" -> "Export Data"。

在 "Wee to the SQL Server Import and Export Wizard" 窗口中,点击 "Next"。

在 "Choose a Data Source" 窗口中,选择数据源的类型,一般选择"SQL Server Native Client",然后选择要导出数据的数据库实例,输入数据库登入信息,点击 "Next"。

在 "Choose a Destination" 窗口中,选择目标数据源的类型为"Microsoft Excel",然后输入 Excel 文件的路径和名称,点击 "Next"。

在 "Specify Table Copy or Query" 窗口中,选择 "Copy data from one or more tables or views",然后选择要导出的表,点击 "Next"。

【IT专家】如何将SQLSERVER数据库中存放的图片数据导出至EXCEL表格中

本文由我司收集整编,推荐下载,如有疑问,请与我司联系如何将SQLSERVER数据库中存放的图片数据导出至EXCEL表格中在数据库应用的开发过程中,经常要在数据库中存储一些备注信息,而这些备注信息的内容一般较大,格式多样,有可能是图像、语音文件、视频文件等,在PB 中可以使用OLE的方法,也可以直接用脚本处理。

本文介绍用脚本来处理,数据库是ASA8的,附件里有表的设计,文中省略。

1、建立一个工作空间(workspace),取名为:blob。

2、建立一个应用(application),取名为:blob。

3、设计一个表blobtest,其字段定义如下:ColumnName DataType Width Null Comment No Integer No 号码Name Varchar 10 No 姓名Photo LongBinary Null 照片4、建立一窗口w_input,内置如下控件:控件名类型说明sle_no SingleLineEdit 输入号码sle_name SingleLineEdit 输入姓名cb_select_photo CommandButton 选择照片文件sle_photo SingleLineEdit 显示照片文件名cb_save CommandButton 保存记录(本文只有插入)cb_query CommandButton 查询cb_exit CommandButton 退出P_1 Picture 显示照片界面如下:5、编写脚本1)、cb_select_photo的clicked 事件:stringls_photofile stringls_named integerli_value //选择照片文件li_value=GetFileOpenName(“选择图片文件”, +ls_photofile,ls_named,”图片文件”, +”BMPFiles(*.BMP),*.BMP,” +”JPGFiles(*.JPG),*.JPG”) sle_photo.text=ls_photofile p_1.Picturename=ls_photofile 2)、cb_save的clicked事件:(本文只处理了新增记录,有兴趣的朋友可以完善他)long ll_no stringls_name stringls_photofile integer li_filenum integer li_loops integer li_counter long ll_filelen blob lb_read blob lb_picture Ifsle_no.text=‘‘orsle_name.text=‘‘orsle_photo.text=‘‘thenreturn ll_no=long(sle_no.text) //号码ls_name=sle_name.text //姓名ls_photofile=sle_photo.text//照片文件//插入记录,先写no,name字段Insertintoblobtest(no,name) values(:ll_no,:ls_name); Ifsqlca.sqlcode=-1then Rollback; Messagebox(‘插入记录出错’,Sqlca.Sqlerrtext) Return Else Commit; Endif //获取文件的大小ll_filelen=FileLength(ls_photofile) //打开文件li_filenum=FileOpen(ls_photofile,STREAMMODE!,READ!,LOCKREAD!) /*FileRead()函数不支持读取大于32K的文本,计算将使用FileRead函数的次数*/ IFll_filelen。

SQL Server分类导出数据

SQL Server分类导出数据摘要:本文对sql serve数据库中的数据分类导出至excel文件进行了研究,通过xp_cmdshell存储过程与bcp的分析与使用,提出了简单有效的解决办法。

关键字:bcp;分类导出;queryout;sql server引言在实际应用中, 常常需要将sql serve数据库中的数据导出至excel中。

将表中全部数据、按条件将部分数据导出至excel非常简单,但要将sql server表中数据按条件分类批量导出为多个excel文件就不那么简单了。

例如:有一学生表(学号,姓名,系名,班级名,课程名称,成绩),现要按学号分类导出数据,每个学生为一类生成一个xls文件,若全校有一万三千名学生,就要分一万三千类,并生成一万三千个xls文件。

如果我们一个个查询导出,工作量巨大,效率也低。

为此,我们今天将研究bcp导出方法,采用while循环查询解决此问题。

2、准备工作bcp是sql server中负责导入导出数据的一个命令行工具,它是基于db-library的,并且能以并行的方式高效地导入导出大批量的数据。

此次研究,我们将调用sql server的一个系统存储过程xp_cmdshell以sql语句的方式运行bcp。

bcp由四个动作组成,in为导入,out为导出,queryout为使用sql语句导出,format为导出格式文件。

在这里,我们的数据源是sql语句,故使用queryout导出。

扩展存储过程xp_cmdshell是一个功能非常强大的扩展存贮过程,可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串。

一般情况下,管理员会将xp_cmdshell禁用。

在这里,我们先要将xp_cmdshell启用: use master execsp_addextendedproc n’xp_cmdshell’, n’xplog70.dll’ go 3、具体实现使用bcp命令导出的语法格式为:bcp ”查询命令” queryout “xls文件保存路径”–c–u “登录名”–p “密码”在命令窗口输入以下的命令:--定义两个变量,@sql用来保存要运行的bcp命令,@xue用来保存用来分类的学号declare @sql varchar(600),@xue int--@xue取得最小的学号select @xue=min(学号) from stud.dbo.学生表--如果学生表中存在此学号的学生时进行如下处理while exists(select * from 学生表 where 学号=@xue)begin--先在xls文件中添加列名set @sql=‘bcp “select ‘+’’’学号’’’+’ as 学号,’+’’’姓名’’’+’ as 姓名,’+’’’系名’’’+’as 系名,’+’’’班级名’’’+’ as 班级名,’+’’’课程名称’’’+’ as 课程名称,’+’’’成绩’’’+’ as 成绩’--使用联合查询将满足条件的记录(该学号对应学生的信息)也添加至xls文件中set @sql=@sql+’ union all select 学号,姓名,系名,班级名,课程名称,成绩 from stud.dbo.学生表 where 学号=‘+cast(@xue as varchar(8))+’” queryout “f:\’+cast(@xue asvarchar(8))+’.xls” -c -u “sa” -p “123”‘--调用xp_cmdshell运行bcp命令exec master..xp_cmdshell @sql--获取下一个学生的学号赋值给@xueselect @xue=isnull(min(学号),@xue+1) from stud.dbo.学生表where 学号>=@xue+1end在书写命令时应注意以下几点:表名要使用“数据库名.所有者名.表名”的形式,否则会出错。

从数据库将数据导入到excel表格中身份证号和电话号码结尾都成了0

竭诚为您提供优质文档/双击可除从数据库将数据导入到excel表格中身份证号和电话号码结尾都成了0篇一:sql数据库表如何导入导出到excel中一.导出1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“exportdata”进入“dtsimport/exportwizard”窗口。

2.点击“下一步”,进入“chooseadatasource”。

3.“datasource”更改为“microsoftoledbproviderforsqlserver”;“server”更改为“笔记本(工控机)名称\wincc”;下一步使用windows认证“usewindowsauthentication”;“database”更改为“项目运行系统下的路径(例如:cc_bgsyj_14_02_24_11_22_22R)”。

4.点击“下一步”,进入“chooseadestination”。

5.“destination”更改为“microsoftexcel97-2000”;“Filename”建议更改为要导出的数据库表的名字,并指定保存的路径。

6.点击“下一步”,进入“specifytablecopyquery”。

7.点击“下一步”,进入“selectsourcetableandViews”。

8.选择要导出的数据库表,然后点击“下一步”,进入“save,schedule,andreplicatepackage”。

9.点击“下一步”,“完成”,“确定”,“done”,数据导出完成。

二.导入1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“importdata”进入“dtsimport/exportwizard”窗口。

2.点击“下一步”,进入“chooseadatasource”。

3.“datasource”更改为“microsoftexcel97-2000”;“Filename”选择到指定路径下excel文档(重新制作或者以前导出的)。

使用VB将SQL Server数据导出生成Excel表格

使用VB将SQLServer数据导出生成Excel表格作者:杨晓峰张茁来源:《硅谷》2009年第10期[摘要]使用VB将SQL Server和Excel结合起来处理数据会得到事半功倍的效果。

介绍设计一个VB程序将SQL Server中查询到的数据导出生成Excel表格的方法。

以解决非专业人员处理数据和阅读数据的问题,也解决SQL Server数据发布需要使用专用的SQL Server管理工具的不便之处。

[关键词]VB SQL Server Excel表格数据库中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0520058-01SQL Server作为微软在Windows系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐。

Excel是微软公司出品的Office系列办公软件中的一个组件,确切地说,它是一个电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测并且具有强大的制作图表的功能。

使用VB将SQL Server和Excel结合起来处理数据会得到事半功倍的效果。

下面将介绍如何设计一个VB程序将SQL Server中查询到的数据导出生成Excel表格。

一、利用ADO的数据库访问组件获取SQL Server中的数据1.在VB工程中新建一个模块LocalInfo,在模块中定义SqlConn的公共函数用以建立与SQL Server数据库的连接SqlCn对象,函数代码如下:Public Function SqlConn(ByVal Ser As String, Data As String, User As String, Pass As String) As BooleanOn Error Resume NextSet SqlCn = New ADODB.ConnectionSqlCn.CursorLocation = adUseClientSqlCn.ConnectionString = "Provider=SQLOLEDB;Server=" + Ser + ";Database=" + Data + ";User ID='" + User + "';Password='" + Pass + "';"SqlCn.OpenIf Err ThenErr.ClearSqlConn = False '数据库连接失败MsgBox "数据库连接失败!系统不能正常运行!" & Chr(13) & Chr(10) & "请进入“数据库设置”重新设定数据库参数!" & Chr(13) & Chr(10) & "或与系统管理员联系,完成后请重新启动该系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将Sql server中数据导出到excel 方法一:从excel中导入数据
选择sqlserver连接
方法二:(Excel文件已经存在,而且已经按照要接收的数据创建好表头——追加记录)insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel
5.0;HDR=YES;DATABASE=c:\1.xls',sheet1$)
select*from dbo.qin_test
操作后报错:
消息15281,级别16,状态1,第1 行
SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的
STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。

系统管理员可以通过使用sp_configure 启用'Ad Hoc Distributed Queries'。

有关启用'Ad Hoc Distributed Queries' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。

方法三:(Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写)
exec master..xp_cmdshell'bcp "select * from dbo.qin_test" queryout c:\2.xls -c -q -S"A382ZJSBQZ7FPEJ" -U"sa" -P"qin"'
消息15281,级别16,状态1,过程xp_cmdshell,第1 行
SQL Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。

系统管理员可以通过使用
sp_configure 启用'xp_cmdshell'。

有关启用'xp_cmdshell' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。

2013-7-15 秦瑞泽。

相关文档
最新文档