将SqlServer的数据导出到Excel/csv中的各种方法 .

摘要:
以下只是操作原则,具体要求应在应用程序中进行分析和更改。如果你有其他好的方法,请相互转告,一起学习。它可以以高效的方式导入和导出数据,而无需启动任何图形管理工具。Bcp是一个命令行工具,负责在SQL Server中导入和导出数据。它基于DB-Library,可以以并行方式高效地导入和导出大量数据。Bcp可以直接导出数据库的表或视图,也可以在通过SELECT FROM语句过滤后导出表或视图。

以下都只是介绍操作的原理,具体要求要在应用中具体分析改变。

如果大家有其他好的方法,请相互告知,共同学习。


1.       此方法常用在form或者Console Application中,使用时须用要添加Reference,具体做法:

          右键点击项目添加“Add Reference”,在com组件下,选择“Microsoft Excel 14.0 Object Library”,然后在项目中使用     

         下面注释//it looks like excele table start with 1 not 1

          应该为//it looks like excele table start with 1 not 0  

   

private static void exportToExcel(DataTable dt)
        {
            Excel.Application excel=new Excel.Application();
            excel.Application.Workbooks.Add(true);
            excel.Visible = true;

            //get the columns
            for (int i = 0; i < dt.Columns.Count;i++ )
            {
                //here is started with 1
                //it looks like excele table start with 1 not 1
                excel.Cells[1, i + 1] = dt.Columns[i].ColumnName.ToString(); 
            }

            //get the data in rows
            for (int row = 0; row < dt.Rows.Count;row++ )
            {
                for (int col = 0; col < dt.Columns.Count; col++)
                {
                    excel.Cells[row+2, col+1] = dt.Rows[row][dt.Columns[col]].ToString();
                }
            }
            //FolderBrowserDialog path = new FolderBrowserDialog();//打开文件对话框
            //path.ShowDialog();
            //textBox1.Text = path.SelectedPath;//选择文件夹

            //save excel
            //excel.SaveWorkspace();

            excel.Quit();
        }

 2. 在web应用中,可通过HttpContext.Response.write()来实现

protected static void  toExcel(DataTable da){
        System.Web.HttpContext context = System.Web.HttpContext.Current;
        context.Response.Clear();

        foreach( DataColumn colum in da.Columns){
            context.Response.Write(colum.ColumnName+"\t");
        }

        context.Response.Write(System.Environment.NewLine);

        foreach (DataRow row in da.Rows) {
            for (int i = 0; i < da.Rows.Count; i++)
            {
                context.Response.Write(row[i].ToString()+"\t");
            }
            context.Response.Write(System.Environment.NewLine);
        }
        context.Response.ContentType = "application/vnd.ms-excel";
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=plan.xls");
        context.Response.End();
    }

 3.bcp命令是SQL Server提供的一个快捷的数据导入导出工具。使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据。bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据。bcp可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出。在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中.

use swangtest
Go

SP_CONFIGURE'show advanced options',1
RECONFIGURE
Go
SP_CONFIGURE 'xp_cmdshell',1
RECONFIGURE
Go
EXEC master..xp_cmdshell 'BCP  swangTest..userinfo OUT  D:\entryId.csv -c -t -T '

  

免责声明:文章转载自《将SqlServer的数据导出到Excel/csv中的各种方法 .》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java编程技巧:if-else优化实践总结归纳SQL Server连接Oracle详细步骤下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PDF合并

要求:将多个table导出到一个PDF里,然后打印。  问题分析:要求将四个table放一个PDF打印,四个table的列各不相同,第一个是表头,其他三个是列表,列比表头多很多,如果直接生成一个excel,然后再直接导出会发现有些列在PDF中换行了。  原因:因为excle可打印的区域是有限制的,可打印的地方如下方法可见:文件-打印-设置-打印选择区域(如...

JAVA实现AD验证

package service;import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.DirContext; import javax.naming.directo...

python爬虫学习笔记(二十五)-Scrapy框架 Middleware

1. Spider 下载中间件(Middleware) Spider 中间件(Middleware) 下载器中间件是介入到 Scrapy 的 spider 处理机制的钩子框架,您可以添加代码来处理发送给 Spiders 的 response 及 spider 产生的 item 和 request 2. 激活一个下载DOWNLOADER_MIDDLEWARE...

精讲RestTemplate第7篇-自定义请求失败异常处理

本文是精讲RestTemplate第7篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换 精讲RestTemplate第3篇-GET请求使用方法详解 精讲RestTemplate第4篇-POST请求方法使用详解 精讲Res...

SqlServer nvarchar中的中文字符匹配,更改SqlServer实例和数据库排序规则的办法

我们都知道在SqlServer中的nvarchar类型可以完美的存储诸如中文这种unicode字符,但是我们会发现有时候查询语句去查询nvarchar列的时候查不出来。 为什么nvarchar类型有时候需要前面带N的字符串才能查出结果 比如假如现在有一张表T_UserInfo如下,其中列[Name]为nvarchar类型用于存储中文姓名: CREATE T...

【ITOO 1】将List数据导出Excel表

需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中。再进行判空处赋值处理,以及去重处理。这篇博客,主要介绍读取excel表和导出excel表的方法。 一、读取Excel数据到list<span style="font-family:KaiTi_GB2312;font-size:18px;">...