精华内容
下载资源
问答
  • 通过Excel自带的查询分析器快速完成从SQL Server中导出数据的例子(通用类) 这是一个使用Excel查询分析器(Ms通用查询分析器)完成从SQL Server 7.0以上版本(已通过测试)的数据快速导出到Excel的示例。它由两个参数...

    这是一个使用Excel中查询分析器(Ms通用查询分析器)完成从SQL Server 7.0以上版本(已通过测试)的数据快速导出到Excel中的示例。它由两个参数完成,其中的第一个是你所要进行查询分析时使用的Select查询语句。为了好看,我们给我们导出的数据加上一个名称。名称,由第二个参数传递进来:)好了,不说什么废话了。大家看代码吧。

    using System;
    using Excel;
    namespace 类库
    {
     public class Excel导出
     {
      public Excel导出(string 查询语句,string 标题)
      {
                Excel.Application excel;
                Excel._Workbook xBk;
                Excel._Worksheet xSt;
                Excel._QueryTable xQt;
                string Conn = "ODBC;DRIVER=SQL Server;SERVER=[服务器地址或者名称];UID=sa;PWD=[密码];APP=[应用程序名称(一般为操作系统名)];WSID=[工作站名称(客户端)];DATABASE=[数据库名称]";
                string Select = 查询语句;
                excel = new Excel.ApplicationClass();
                xBk = excel.Workbooks.Add(true);
                xSt = (Excel._Worksheet)xBk.ActiveSheet;
                excel.Cells[2,2] = 标题;
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Name = "黑体";
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
                xQt = xSt.QueryTables.Add(Conn,xSt.get_Range(excel.Cells[4,2],excel.Cells[4,2]),Select);
                xQt.Name = "导出示例";
                xQt.FieldNames = true;
                xQt.RowNumbers = false;
                xQt.FillAdjacentFormulas = false;
                xQt.PreserveFormatting = false;
                xQt.BackgroundQuery = true;
                xQt.RefreshStyle = Excel.XlCellInsertionMode.xlInsertDeleteCells;
                xQt.AdjustColumnWidth = true;
                xQt.RefreshPeriod = 0;
                xQt.PreserveColumnInfo = true;
                xQt.Refresh(xQt.BackgroundQuery);
                excel.Visible = true;
      }
     }
    }

    全中文的,不用进行解释了吧?

    原来进行数据导出操作(相关连接http://www.csdn.net/Develop/Read_Article.asp?Id=21391),三百条记录,用时十分钟以上。如果使用Excel自带的这一个查询工具,导出一万条记录,只需十秒钟以内的时间,而且,可以完成格式自动排版的功能。

    可能有人会问:Excel里面的查询语句与SQL Server里面的查询语句是不是一样的?这里说明一点。使用这个类,可以直接使用SQL Server里面的查询语句,包括直接传递SQL Server的存储过程。

    展开全文
  • sqlserver导出数据到excel方法

    万次阅读 2018-05-26 10:36:28
    sqlserver导出数据到excel方法

    sqlserver导出数据到excel方法
    展开全文
  • 这是一个使用Excel查询分析器(Ms通用查询分析器)完成从SQL Server 7.0以上版本(已通过测试)的数据快速导出到Excel的示例。它由两个参数完成,其中的第一个是你所要进行查询分析时使用的Select查询语句。为了好看...

    这是一个使用Excel中查询分析器(Ms通用查询分析器)完成从SQL Server 7.0以上版本(已通过测试)的数据快速导出到Excel中的示例。它由两个参数完成,其中的第一个是你所要进行查询分析时使用的Select查询语句。为了好看,我们给我们导出的数据加上一个名称。名称,由第二个参数传递进来:)好了,不说什么废话了。大家看代码吧。

    using System;
    using Excel;
    namespace 类库
    {
     public class Excel导出
     {
      public Excel导出(string 查询语句,string 标题)
      {
                Excel.Application excel;
                Excel._Workbook xBk;
                Excel._Worksheet xSt;
                Excel._QueryTable xQt;
                string Conn = "ODBC;DRIVER=SQL Server;SERVER=[服务器地址或者名称];UID=sa;PWD=[密码];APP=[应用程序名称(一般为操作系统名)];WSID=[工作站名称(客户端)];DATABASE=[数据库名称]";
                string Select = 查询语句;
                excel = new Excel.ApplicationClass();
                xBk = excel.Workbooks.Add(true);
                xSt = (Excel._Worksheet)xBk.ActiveSheet;
                excel.Cells[2,2] = 标题;
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Name = "黑体";
                xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
                xQt = xSt.QueryTables.Add(Conn,xSt.get_Range(excel.Cells[4,2],excel.Cells[4,2]),Select);
                xQt.Name = "导出示例";
                xQt.FieldNames = true;
                xQt.RowNumbers = false;
                xQt.FillAdjacentFormulas = false;
                xQt.PreserveFormatting = false;
                xQt.BackgroundQuery = true;
                xQt.RefreshStyle = Excel.XlCellInsertionMode.xlInsertDeleteCells;
                xQt.AdjustColumnWidth = true;
                xQt.RefreshPeriod = 0;
                xQt.PreserveColumnInfo = true;
                xQt.Refresh(xQt.BackgroundQuery);
                excel.Visible = true;
      }
     }
    }

    全中文的,不用进行解释了吧?

    原来进行数据导出操作(相关连接http://www.csdn.net/Develop/Read_Article.asp?Id=21391),三百条记录,用时十分钟以上。如果使用Excel自带的这一个查询工具,导出一万条记录,只需十秒钟以内的时间,而且,可以完成格式自动排版的功能。

    可能有人会问:Excel里面的查询语句与SQL Server里面的查询语句是不是一样的?这里说明一点。使用这个类,可以直接使用SQL Server里面的查询语句,包括直接传递SQL Server的存储过程。

    展开全文
  • SQL导入/导出数据到excel

    千次阅读 2010-12-29 09:19:00
    --从sql server导入/导出 excel 的基本方法/*=================== 导入/导出 excel 的基本方法 ===================*/excel文件,导入数据sql数据库,非常简单,直接用下面的语句:/*=======================...


    --从sql server中导入/导出 excel 的基本方法


    /*===================  导入/导出 excel 的基本方法 ===================*/

    从excel文件中,导入数据到sql数据库中,非常简单,直接用下面的语句:

    /*===================================================================*/
    --如果接受数据导入的表已存在
    insert intoselect * from
    openrowset(microsoft.jet.oledb.4.0
    ,excel
    5.0;hdr=yes;database=c:test.xls,sheet1$)

    --如果导入数据并生成表
    select * intofrom
    openrowset(microsoft.jet.oledb.4.0
    ,excel
    5.0;hdr=yes;database=c:test.xls,sheet1$)


    /*===================================================================*/
    --如果从sql数据库中,导出数据到excel,如果excel文件已存在,而且已按照要接收的数据创建好表头,就能简单的用:
    insert into openrowset(microsoft.jet.oledb.4.0
    ,excel
    5.0;hdr=yes;database=c:test.xls,sheet1$)
    select * from


    --如果excel文件不存在,也能用bcp来导成类excel的文件,注意大小写:
    --
    导出表的情况
    exec master..xp_cmdshell bcp 数据库名.dbo.表名 out "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"

    --导出查询的情况
    exec master..xp_cmdshell bcp "select au_fname, au_lname from pubs..authors order by au_lname" queryout "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"


    /*--说明:
    c:test.xls  为导入/导出的excel文件名.
    sheet1$      为excel文件的工作表名,一般要加上$才能正常使用.
    --
    */
    --上面已说过,用bcp导出的是类excel文件,其实质为文本文件,

    --要导出真正的excel文件.就用下面的方法


    /*--数据导出excel

    导出表中的数据到excel,包含字段名,文件为真正的excel文件
    ,如果文件不存在,将自动创建文件
    ,如果表不存在,将自动创建表
    基于通用性考虑,仅支持导出标准数据类型
    --邹建 2003.10--
    */

    /*--调用示例

    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, nisprocedure) = 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="    +;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

    /*--如果覆盖已存在的表,就加上下面的语句
    --创建之前先删除表/如果存在的话
    select @sql=drop table [+@tbname+]
    exec @err=sp_oamethod @obj,execute,@out out,@sql
    --
    */

    --创建表的sql
    select @sql=,@fdlist=
    select @fdlist=@fdlist+,[+a.name+]
    ,
    @sql=@sql+,[+a.name+]
     
    +case when b.name in(char,nchar,varchar,nvarchar) then
        
    text(+cast(case when a.length>255 then 255 else a.length end as varchar)+)
      
    when b.name in(tynyint,int,bigint,tinyint) then int
      
    when b.name in(smalldatetime,datetime) then datetime
      
    when b.name in(money,smallmoney) then money
      
    else b.name end
    from syscolumns a left join systypes b on a.xtype=b.xusertype
    where b.name 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文件
    ,如果文件不存在,将自动创建文件
    ,如果表不存在,将自动创建表
    基于通用性考虑,仅支持导出标准数据类型
    --邹建 2003.10--
    */

    /*--调用示例

    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, nisprocedure) = 1)
    drop procedure [dbo].[p_exporttb]
    go

    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="    +;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 in(char,nchar,varchar,nvarchar) then
        
    text(+cast(case when a.length>255 then 255 else a.length end as varchar)+)
      
    when b.name in(tynyint,int,bigint,tinyint) then int
      
    when b.name in(smalldatetime,datetime) then datetime
      
    when b.name in(money,smallmoney) then money
      
    else b.name end
    from tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
    where b.name 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

     

    展开全文
  • 1、右击数据库--》任务--》导出数据 2、下一步 3、选择数据源: SQL Server Native Client 11.0 服务器:根据需要选择 身份验证:SQL Server 身份验证 数据库:选择你要导出数据的数据库 下一步 4、选择...
  • c#里从SQLSERVER导出数据到EXCEL

    千次阅读 2009-03-08 09:20:00
    建议用SQL SERVER的存储过程来实现,然后在c#里调用执行。... 参考存储过程:[邹建] /*--数据导出EXCEL 导出数据到Excel,包含字段名,文件为真正的Excel文件 ,如果文件不存在,将自动创建文件
  • 扫盲意识: 用navicat工具,建立sql链接,要安装mysql;...我在navicat上,建立生sql server连接,公司本地服务器获得数据;使用没任何问题;当转储sql文件,在京东云(已经安装了sqlserver)上navicat
  • 从sql server 导出数据的时候遇到下面的问题。 列的值包含的空格在导出到excel的时候变成换行了,像下面这样: 该列内容: 大师傅发。 一:我、大师傅发1484.88元 二、小...
  • Oracle自带的sql developer导入导出数据

    万次阅读 2013-01-15 21:02:52
    最近使用oracle导入导出数据时,遇到了不少的麻烦!遂对oracle数据库进行了认真的学习,总结了几种导入导出的命令方法,以备以后查阅。  数据导出:  1、 将数据库test完全导出,用户名system 密码manager 导出到...
  • sql loader导出数据和导入数据(sqlldr)

    万次阅读 2018-08-03 09:05:47
    trailing nullcols ( virtual_column FILLER, --跳过 由 PL/SQL Developer 生成的第一列序号 userid , --这一列直接取序列的下一值,而不用数据中提供的值 "user_seq.nextval" username "'Hi '||...
  • 使用awrextr.sql导出awr原始数据

    千次阅读 2014-07-31 23:12:01
    使用awrextr.sql导出awr原始数据
  • SQL数据导入导出

    千次阅读 2006-04-20 16:00:00
    SQL数据导入导出 -------------------------------------------------------------------------------- 发表日期:2006年1月4日 【编辑录入:ecawen】 ******* 导出到excelEXEC master..xp_cmdshell bcp SettleDB...
  • SQL server数据库的某张表里的所有数据导入到另外一个数据库或另外一台计算机上的数据库,有这样的一种方法: 下面我以sql server 2008 R2,数据库是[test]数据库为例。 目标:把[test]数据库的 Test_Table 表...
  • PL/SQL导出大量数据到Excel的方法。

    万次阅读 2018-04-11 15:36:19
    (此时千万别将数据加载完后-全选-右键-导出结果为excel文件,因为excel表格有最大行数限制,限制为1048576行,若要导出数据量大于最大行数,则会在导出到1048576行时候报错,而且在plsql加载大量数据非常费时,...
  • sql server数据库导出表里所有数据

    千次阅读 2018-08-02 16:01:00
    连接数据库》选择需要导出数据的数据库》任务》生成脚本 点击下一步,选择特定数据库对象》选择需要导出的数据表,下一步 选择高级》要编写脚本的数据的类型:仅限数据》保存到新建查询窗口》下一步》下一步》完成...
  • SQL数据导入导出总结

    千次阅读 2007-07-13 16:53:00
    SQL数据导入导出问题总结 大家打开这个链接可以看到很多数据库的连接方法。http://www.connectionstrings.com这些数据库之间的数据交换就是这个贴子所要总结的内容。(一)SQL Server之间把远程数据库数据导入到...
  • PL/SQL DEVELOPER怎样导出数据到EXCEL

    千次阅读 2015-01-30 12:00:41
    2.1查询表数据   2.2 右击查询结果,点‘copy to exel’     会自动生成一个excel文件(一般以tmp开头):   如果想修改文件路径, 名称,文件-另存为,放到其他位置即可。
  • 一、导出导入SQL Server里某个数据库 1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务-&gt;备份数据库。 2.备份 选数据库-完全, 目的 备份到 按添加按钮 文件名 在SQL Server服务器...
  • 选择需要导出数据的数据库>任务>生成脚本; 2点击下一步,选择特定数据库对象>选择需要导出的数据表,下一步; 3选择高级>要编写脚本的数据的类型:仅限数据>保存到新建查询窗口>下一步>下一步&...
  • SQLServer数据导出Access

    千次阅读 2017-10-31 16:31:32
    /// 在access数据库创建表 /// </summary> /// 数据库表文件全路径如D:\\NewDb.mdb 没有则创建 </param> /// 表名</param> /// <param name="colums">ADOX.Column对象数组</param> private void ...
  • 昨天系统自动备份了某一个数据库的全部表数据,名dbAll.sql.gz。文件较大(如40G) 今天因发现某一个表tableA的一条数据存在问题,需核对两条记录的变化。需dbAll找回tableA的数据,以便比较该记录。   操作...
  • /*--数据导出EXCEL 导出查询数据到Excel,包含字段名,文件为真正的Excel文件 如果文件不存在,将自动创建文件 如果表不存在,将自动创建表 基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10(引用请保留此信息)...
  • Sql Server数据导出EXCEL(增加分页功能)

    千次阅读 2009-06-17 15:52:00
    Sql Server数据导出EXCEL 还是在用Sql Server2000的,放出一... /*--数据导出EXCEL 导出查询数据到Excel,包含字段名,文件为真正的Excel文件 如果文件不存在,将自动创建文件 如果表不存在,将自动创建表 基于通
  • SQL语句导入/导出数据

    千次阅读 2007-04-19 15:53:00
    SQL语句导入/导出数据集一.在MSSQL2000使用Transact-SQL语句处理DBF数据转换1、查询dbf数据 SELECT * FROM OpenDataSource(vfpoledb,Data Source="d:vfptest.dbc")...test1 SELECT a.* FROM OPENROWSET(MSDASQL, ...
  • Sql Server数据导出EXCEL(增加分页功能)

    千次阅读 2011-03-29 15:08:00
    Sql Server数据导出EXCEL(增加分页功能)
  • 使用PL/SQL导出数据和设置定时任务

    千次阅读 2018-12-18 16:08:06
    使用PL/SQL导出数据和设置定时任务 导出表结构和数据 选中需要导出的表 2.邮件导出数据。选中SQL插入并且。勾选上创建表(否则没有建表sql)。并且在创面创建一个空白的sql文件 ...
  • This article will explain the steps for importing and exporting data using the SQL Server Import... 本文将介绍使用SQL Server导入和导出向导导入和导出数据的步骤。 Depending on the options that are s...
  • 平常从SQLSERVER进行导入导出时,我们利用SQLSERVER自带的DTS转换工具即可,很方便。但有些特殊的用法需要用语句进行导入导出,工作碰到这种情况,查了些资料,下面详细介绍: 一、excel表导入到SQL...
  • SQL Server导出导入数据方法

    千次阅读 2006-12-25 10:35:00
    一、导出导入SQL Server里某个数据库 1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。 2.备份 选数据库-完全, 目的 备份到 按添加按钮 文件名 在SQL Server服务器硬盘下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,645
精华内容 33,458
关键字:

从sql中自动导出数据