如何把SQLServer表数据导出为Excel文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把SQLServer表数据导出为Excel文件相关的知识,希望对你有一定的参考价值。
1、首先打开软件,可以看到,数据库中有一张student表,现在要把这张表中的数据导出成excel文件。
2、在这张表上右击,选择“Export”,再选择“Export Table Data as CSV,SQL,Excel etc ... ”。
3、然后在导出配置页面中,选择“Excel XML”类型。
4、然后点击下面的三个点按钮,选择导出路径。
5、输入文件名,点击“保存”。
6、然后将文件的后缀名改成"xls",点击“Export”。
7、就是我们导出的excel文件。
参考技术ASQLServer表数据导出为Excel文件
一、少量数据导出
1、在查询分析器中,使用SQL语句检索要导出的数据
2、选中所有数据,点击鼠标右键,选择另存为CSV文件
3、用EXCEL把CSV文件另存为xls文件。
二、表格批量导出
1、开始菜单选择"导入和导出数据"
2、选择要导出的数据库,如图配置
3、设置导出目标
4、设置目标文件
5、选择筛选数据发送
6、选择导出的表格
7、完成设置
参考技术B1、打开SQL
Server
Management
Studio,然后找到相应的数据库
2、右键点击数据库名称,然后点选“任务-->导出数据”
3、弹出"导入和导出向导"界面后,点击【下一步】按钮,进入"选择数据源"界面。“数据源”和“服务器名称”采用默认值,“身份验证”默认使用Windows身份验证,可选择“使用SQL
Server身份验证”方式进行验证。“数据库”需要选择为要导出数据的目标数据库。
4、点击【下一步】,进入"选择目标"界面。默认目标为“SQL
Native
Client”,需要将目标进行重新选择为“Microsoft
Excel”。然后选择导出位置(即“Excel文件路径”),并命名一个导出文件名。
5、点击【下一步】,进入"指定表复制或查询"界面。在该界面,可以选择数据导出模式,如果需要通过SQL查询语句精确导出部分数据,则选择“编写查询以指定要传输的数据”导出方式
6、如果选择的是第二种导出方式,则点击【下一步】按钮,进入“提供源查询”界面。在SQL语句栏中,输入查询条件,然后点击【分析】按钮检验SQL语句是否正确有效,如果分析显示“此SQL语句有效”,则可以继续执行下一步操作。
7、点击【下一步】,进入“选择源表和源视图”界面。继续点击【下一步】按钮,进入“保存并执行包”界面。在该界面,点击【下一步】按钮,然后点击【完成】按钮,开始执行数据导出操作。在执行结束后,即可在相应导出位置找到导出的Excel数据文件。
具体看下面:
这是利用BCP来做的,
使用SQLServer自带的bcp命令——
bcp 数据库名.dbo.表名 out 文件名 –c –q –S”服务器名” –U”用户名” –P”密码”
bcp ”select 语句” queryout 文件名 –c –q –S”服务器名” –U”用户名” –P”密码”
导出整张表:
EXEC master..xp_cmdshell 'bcp "inter_custom.dbo.out_ck1" out c:\Temp.xls -c -q -S"PETER" -U"sa" -P"davey@citiz.net"'
根据Query语句导出:
EXEC master..xp_cmdshell 'bcp "select * from inter_custom.dbo.out_ck1" queryout c:\Temp.xls -c -q -S"PETER" -U"sa" -P"davey@citiz.net"'
利用bcp要求数据库的服务器名,数据库用户名和密码,这些必须传到程序中。方法可以有很多中,大概的例子,可以看:
http://www.cnblogs.com/kevin/archive/2004/09/21/45351.html
利用openrowset可以写存储过程,可以看下面的例子
引自CSDN的邹建大大
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
/*--数据导出EXCEL
导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件
如果文件不存在,将自动创建文件
如果表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
--邹建 2003.10(引用请保留此信息)--*/
/*--调用示例
p_exporttb @sqlstr='select * from 地区资料'
,@path='c:\',@fname='aa.xls',@sheetname='地区资料'
--*/
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)
--参数检测
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 8.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+',['+a.name+']'
,@sql=@sql+',['+a.name+'] '
+case
when b.name like '%char'
then case when a.length>255 then 'memo'
else 'text('+cast(a.length as varchar)+')' end
when b.name like '%int' or b.name='bit' then 'int'
when b.name like '%datetime' then 'datetime'
when b.name like '%money' then 'money'
when b.name like '%text' then 'memo'
else b.name end
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')
and a.id=(select id from tempdb..sysobjects where name=@tbname)
if @@rowcount=0 return
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 8.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
从DataGrids中导出数据到Excel
DataSet结果导出到Excel
Export DataSets to Excel...
导出到Excel的四种方法
关于从net程序如何导出到excel微软的msdn有专门的讲述,在上面可以搜到。本回答被提问者采纳 参考技术D 工具/原料
SQLServer2005或者SQLServer2008、SQLServer2008 R2
方法/步骤
1
方法一:对于会写查询SQL语句的则是直接写查询语句查询出结果。如下图:
2
接下来到桌面新建一个空的excel文件。
接下来回到SQLServer查询界面。鼠标右键点击查询结果的左上角空白列,点击“连同标题一起复制”。则已复制好了数据。如下图:
3
接下来打开之前建好的Excel文件把复制好的数据黏贴到excel即可。如下图:
4
方法二:对于不会写查询SQL语句的则使用数据库导出方法。
选中要导出数据的数据库,点击右键会弹出一个右键菜单。点击“任务”再点击“导出数据(x)”。如下图:
5
点击了“导出数据(x)”后会弹出一个界面,并填写好信息。如下图:
6
点击下一步跳转到如下图1中的界面。在目标中选中excel类型,界面信息则发生改变,并选中导出的excel路径。如下图2。
7
点击下一步跳转至如下界面,选中第一个选项。如下图:
8
点击下一步,勾选要导出的表。如下图:
9
点击下一步,跳转至如下界面:
10
点击下一步:跳转到如下图1界面,选择下一步在点击完成,则会跳到如下图2界面。证明已经导出成功了。
11
打开excel就可用看到导出的Excel了。
如何把SQLServer表数据导出CSV文件
参考技术A1、先到界面创建一个.txt文件,再把后缀名改为csv。则变成了一个csv文件。
2、打开SQLServer数据库。鼠标选中要导出数据的数据库,点击右键会弹出一个右键菜单。点击“任务”。
3、再点击“导出数据(x)”。
4、点击了“导出数据(x)”后会弹出一个界面,并填写好信息进行下一步。
5、弹出一个选择目标界面。
6、在目标中选中“平面文件目标”类型点击下一步。
7、在弹出的界面选中第一项。
8、选中要导出的表。
9、点击下一步。
10、等待执行成功。
11、打开csv文件,查看数据。
以上是关于如何把SQLServer表数据导出为Excel文件的主要内容,如果未能解决你的问题,请参考以下文章