文件管理 · 2022年8月24日

bcp导出excel格式文件|如何把SQLServer表数据导出为Excel文件

A. 如何将查询出来的数据导出成excel形式

数据库表查询结果导出为excel文件:

1、准备好查询语句

2、选择数据库,启动导入和导出向导

B. 实现真Excel格式文件导出

//前面引用using System.Text.RegularExpressions; //Grid_SalesValue是DataGrid控件名称 StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); this.Grid_SalesValue.RenderControl(htw); string strHtml = sw.ToString().Trim(); strHtml = strHtml.Substring(1, strHtml.Length – 1); //文件名 string ExcelFileName = "SalV.xls"; string FilePhysicialPathName = Request.PhysicalApplicationPath + "\\DownloadExcel\\"; //生成的Excel文件名 string objectExcelFileName = Path.Combine(FilePhysicialPathName, ExcelFileName); if (File.Exists(objectExcelFileName)) { File.Delete(objectExcelFileName); } FileStream fs = new FileStream(objectExcelFileName, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs, Encoding.GetEncoding("GB2312")); bw.Write(strHtml); bw.Close(); fs.Close(); sw.Dispose(); htw.Dispose(); //下载表格并打开 Response.Write("<script> window.open('http://cgqh308a/Rolling_Forecast/downloadexcel/" + "SalV.xls" + "')</script>");

C. 金山文档怎么导出excel文件

在金山文档主页点击文件,然后点击另存为Excel文件,接着点击保存即可导出,具体操作如下:

工具/原料:

联想Y7000P

Windows10

WPSoffice2021

1、点击文件按钮

打开金山文档软件来到主页,点击页面右上角的文件按钮。

D. 导出excel的几种方法

方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL ServeropenFileDialog = new OpenFileDialog();openFileDialog.Filter = "Excel files(*.xls)|*.xls";if(openFileDialog.ShowDialog()==DialogResult.OK){FileInfo fileInfo = new FileInfo(openFileDialog.FileName);string filePath = fileInfo.FullName;string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";try{OleDbConnection oleDbConnection = new OleDbConnection(connExcel);oleDbConnection.Open();//获取excel表DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);//获取sheet名,其中[0][1]…[N]: 按名称排列的表单元素string tableName = dataTable.Rows[0][2].ToString().Trim();tableName = "[" + tableName.Replace("'","") + "]";//利用SQL语句从Excel文件里获取数据//string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;string query = "SELECT 日期,开课城市,讲师,课程名称,持续时间 FROM " + tableName;dataSet = new DataSet();//OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);//OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);oleAdapter.Fill(dataSet,"gch_Class_Info");//dataGrid1.DataSource = dataSet;//dataGrid1.DataMember = tableName;dataGrid1.SetDataBinding(dataSet,"gch_Class_Info");//从excel文件获得数据后,插入记录到SQL Server的数据表DataTable dataTable1 = new DataTable();SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,classPlace, classTeacher, classTitle, rativeDate FROM gch_Class_Info",sqlConnection1);SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);sqlDA1.Fill(dataTable1);foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows){DataRow dataRow1 = dataTable1.NewRow();dataRow1["classDate"] = dataRow["日期"];dataRow1["classPlace"] = dataRow["开课城市"];dataRow1["classTeacher"] = dataRow["讲师"];dataRow1["classTitle"] = dataRow["课程名称"];dataRow1["rativeDate"] = dataRow["持续时间"];dataTable1.Rows.Add(dataRow1);}Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");sqlDA1.Update(dataTable1);oleDbConnection.Close();}catch(Exception ex){Console.WriteLine(ex.ToString());}}//方案二: 直接通过SQL语句执行SQL Server的功能函数将Excel文件转换到SQL Server数据库OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "Excel files(*.xls)|*.xls";SqlConnection sqlConnection1 = null;if(openFileDialog.ShowDialog()==DialogResult.OK){string filePath = openFileDialog.FileName;sqlConnection1 = new SqlConnection();sqlConnection1.ConnectionString = "server=(local);integrated security=SSPI;initial catalog=Library";//import excel into SQL Server 2000/*string importSQL = "SELECT * into live41 FROM OpenDataSource" + "('Microsoft.Jet.OLEDB.4.0','Data Source=" + "\"" + "E:\\022n.xls" + "\"" + "; User ID=;Password=; Extended properties=Excel 5.0')…[Sheet1$]";*///export SQL Server 2000 into excelstring exportSQL = @"EXEC master..xp_cmdshell'bcp Library.dbo.live41 out " + filePath + "-c -q -S" + "\"" + "\"" +" -U" + "\"" + "\"" + " -P" + "\"" + "\"" + "\'";try{sqlConnection1.Open();//SqlCommand sqlCommand1 = new SqlCommand();//sqlCommand1.Connection = sqlConnection1;//sqlCommand1.CommandText = importSQL;//sqlCommand1.ExecuteNonQuery();//MessageBox.Show("import finish!");SqlCommand sqlCommand2 = new SqlCommand();sqlCommand2.Connection = sqlConnection1;sqlCommand2.CommandText = exportSQL;sqlCommand2.ExecuteNonQuery();MessageBox.Show("export finish!");}catch(Exception ex){MessageBox.Show(ex.ToString());}}if(sqlConnection1!=null){sqlConnection1.Close();sqlConnection1 = null;}//方案三: 通过到入Excel的VBA dll,通过VBA接口获取Excel数据到DataSetOpenFileDialog openFile = new OpenFileDialog();openFile.Filter = "Excel files(*.xls)|*.xls";ExcelIO excelio = new ExcelIO();if(openFile.ShowDialog()==DialogResult.OK){if(excelio!=null)excelio.Close();excelio = new ExcelIO(openFile.FileName);object[,] range = excelio.GetRange();excelio.Close();DataSet ds = new DataSet("xlsRange");int x = range.GetLength(0);int y = range.GetLength(1);DataTable dt = new DataTable("xlsTable");DataRow dr;DataColumn dc;ds.Tables.Add(dt);for(int c=1; c<=y; c++){dc = new DataColumn();dt.Columns.Add(dc);}object[] temp = new object[y];for(int i=1; i<=x; i++){dr = dt.NewRow();for(int j=1; j<=y; j++){temp[j-1] = range[i,j];}dr.ItemArray = temp;ds.Tables[0].Rows.Add(dr);}dataGrid1.SetDataBinding(ds,"xlsTable");if(excelio!=null)excelio.Close();}

E. SQL查询结果的临时表里的数据导出成文件(Excel,或是数据库文件)的命令。

sqlserver的dts工具数据导入导出工具,在sqlserver的菜单中可以找到,选择数据源为excel2000,程序会让你指定一个excel文件,选择excel文件,然后选择导入数据库,选择导入的表,这里可以重新命名一个表,然后导入就可以了。

F. 如何将存储过程返回的结果导出为Excel

SQL Server有一些工具可用来导出和导入数据。这些简单的工具,例如T-SQL的BULK INSERT语句,或者是BCP工具,都可以将数据以纯文本文件的形式传输。如果需要处理任何一种其他类型的文件的导入导出,则我们必须使用DTS设计器或者DTS向导构建一个DTS包。最终生成的DTS包是一个我们必须测试、维护和操作的独立的对象。而传输数据的工作则变得更加复杂,即使我们只是想要将一个简单的Excel文件传输到文件系统中。这里,我建议使用一个简单,但是很有用的T-SQL 存储程序,它可以通过使用链接服务器(linked server)技术将数据导出到Excel 中。 为了实现导出,你必须首先创建一个空的有固定名字的Excel文件,并将其放置在服务器上。我把它命名为Empty.xls,并放置在c:temp的目录下。这个文件不会被删除,并且在装入数据之前,作为目标Excel文件的模板使用。 Empty.xls文件被构建的时候,只含有一个工作页,名为ExcelTable,其中的第一行(仅有的一行)包含如下字母: A,B,C,…Z。这些字母可作为Excel表的列名称。这意味着在一个查询中,我们可以导出26个列。(给定的存储程序代码可被修改,以支持结果集中含有更多的列的情况。只需要在Excel模板中简单地书写F1, F2 ,F3…,然后更改程序中相应列的列表即可反映出变化了。) sp_write2Excel是一个T-SQL存储过程,它获取目标Excel文件的名字和路径,结果集中列的数量,以及T-SQL查询。在查询中应该使用转换函数将所有的非字符串数据导入列中,因为最终的Excel单元中数据实际上都是字符串格式的。 这个过程将empty.xls模板文件拷贝到新的目标Excel文件中。然后它再构建一个链接服务器到刚才的文件中,并使用动态的T-SQL来构建这个Excel文件,并且使用插入/选择语句来将数据写入其中。以下是程序代码:Create proc sp_write2Excel (@fileName varchar(100), @NumOfColumns tinyint, @query varchar(200))asbegin declare @dosStmt varchar(200) declare @tsqlStmt varchar(500) declare @colList varchar(200) declare @charInd tinyint set nocount on — 构建列的列表 A,B,C … — 直到达到列的数量.set @charInd=0 set @colList = 'A' while @charInd < @NumOfColumns – 1 begin set @charInd = @charInd + 1 set @colList = @colList + ',' + char(65 + @charInd) end — 创建一个空的Excel 文件作为目标文件,通过拷贝模板Excel 文件来命名 set @dosStmt = ' c:tempempty.xls ' + @fileName exec master..xp_cmdshell @dosStmt — 创建一个“临时”的链接服务器到刚才的文件中,以用于“导出”数据 EXEC sp_addlinkedserver 'ExcelSource', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', @fileName, NULL, 'Excel 5.0' — 构建一个T-SQL 语句,用于实际导出查询结果 — 到目标链接服务器上的表中 set @tsqlStmt = 'Insert ExcelSource…[ExcelTable$] ' + ' ( ' + @colList + ' ) '+ @query print @tsqlStmt — 执行动态的 TSQL语句 exec (@tsqlStmt) — 删除链接服务器 EXEC sp_dropserver 'ExcelSource' set nocount offendGO程序使用实例:Use mastergoexec sp_write2Excel –目标excel文件 'c:tempNorthProcts.xls' , — 结果中列的数量 3, — 将要导出结果的查询 'select convert(varchar(10),ProctId), ProctName, Convert (varchar(20),UnitPrice) from Northwind..Procts' 结论,这个程序可作为一个通用的工具将数据导出到Excel工作页中,而BCP工具则只能将数据导出到文本文件中。 我们可以使用这个程序来代替DTS包设计器,以及DTS向导,每当需要调用这样的动作的时候,都可以用它将数据导出到excel 文件中。

G. 如何把SQLServer表数据导出为Excel文件

1、首来先打开软件,可以看源到,数据库中有一张student表,现在要把这张表中的数据导出成excel文件。

H. 如何使用SQL Server命令BCP 导入导出EXCEL数据

SQL Server BCP 导入导出使用Bcp 导出导入数据高效,比使用SQL Server Management Stdio 提供的数据库导出导入要高效因为sql server 也没有提供提供类似oracle的expdp和impdp的工具,如果用SQL Server Management Stdio提供的导入导出对大表数据进行迁移速度太慢了Bcp 导出数据高效比较适用于大表数据的迁移进入doc命令行输入bcp命令,就弹出bcp命令的帮助信息:C:\Users\wangwei>bcp用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件[-m 最大错误数] [-f 格式化文件] [-e 错误文件][-F 首行] [-L 末行] [-b 批大小][-n 本机类型] [-c 字符类型] [-w 宽字符类型][-N 将非文本保持为本机类型] [-V 文件格式版本] [-q 带引号的标识符][-C 代码页说明符] [-t 字段终止符] [-r 行终止符][-i 输入文件] [-o 输出文件] [-a 数据包大小][-S 服务器名称] [-U 用户名] [-P 密码][-T 可信连接] [-v 版本] [-R 允许使用区域设置][-k 保留 Null 值] [-E 保留标识值][-h"加载提示"] [-x 生成 xml 格式化文件]参数介绍:bcp共有四个动作可以选择。 (1) 导入。 这个动作使用in命令完成,后面跟需要导入的文件名。 (2) 导出。 这个动作使用out命令完成,后面跟需要导出的文件名。 (3) 使用SQL语句导出。 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。 (4) 导出格式文件。 这个动作使用format命令完成,后而跟格式文件名。 下面介绍一些常用的选项: -f format_file format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。 -x 这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。 -F first_row 指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。 -L last_row 指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。 -c 使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。 -w 和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。 -t field_term 指定字符分割符,默认是"\t"。 -r row_term 指定行分割符,默认是"\n"。 -S server_name[ \instance_name] 指定要连接的SQL Server服务器的实例,如果未指定此选项,bcp连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。 -U login_id 指定连接SQL Sever的用户名。 -P password 指定连接SQL Server的用户名密码。 -T 指定bcp使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。 -k 指定空列使用null值插入,而不是这列的默认值。 使用bcp导出数据 在控制台执行bcp:bcp db_name.dbo.T_tablename out c:\a.txt -c -Tbcp db_name.dbo.T_tablename out c:\a.txt -c -Uusername -Pxxxxx通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行bcp:exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename out c:\a.txt -c -T' –"-T"信任连接exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename out c:\a.txt -c -Usa -Pxxxxx'说明:-T指定 bcp 使用网络用户的安全凭据,通过信任连接连接到 SQL Server。不需要 login_id 和 password。如果不是使用T需要加上-U和-P参数输入用户名和密码如果是本地导入导出可以不加-S参数,如果连接到远程服务需要加-S参数bcp db_name.dbo.tablename out d:\table.txt -c -q -S"120.26.76.220,1833" -U"sa" -P"password"对要导出的表进行过滤。 bcp不仅可以接受表名或视图名做为参数,也可以接受SQL做为参数,通过SQL语句可以对要导出的表进行过滤,然后导出过滤后的记录。 EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM db_name.dbo.T_tablename" queryout c:\table2.txt -c -U"sa" -P"password"' bcp还可以通过简单地设置选项对导出的行进行限制。 这条命令使用了两个参数-F 2和-L 16,表示从SE EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM db_name.dbo.T_tablename" queryout c:\currency2.txt -F 2 -L 16 -c -U"sa" -P"password"' SELECT TOP 20 * FROM db_name.dbo.T_tablename所查出来的结果中取第2条到16条记录进行导出。使用bcp导入数据 bcp可以通过in命令将bcp导出的文件导入到表中,首先需要创建表结构和导出数据的表结构相同在控制台执行bcp:bcp db_name.dbo.T_tablename in c:\a.txt-c -Tbcp db_name.dbo.T_tablename in c:\a.txt -c -Uusername -Pxxxxx通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行bcp:exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename in c:\a.txt-c -T' –"-T"信任连接exec master..xp_cmdshell 'bcp db_name.dbo.T_tablename in c:\a.txt -c -Usa -Pxxxxx'

I. 怎样从数据库里把自己需要的数据导出到excel表格中

SERVER、ACCESS、EXCEL数据转换,详细说明如下:一、SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤: ○1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation ○2Services(数据转换服务),然后选择 czdImport Data(导入数据)。 ○3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 ○4在Choose a Destination(选择目标)对话框中,选择Microsoft OLEDB Prov ider for SQLServer,选择数据库服务器,然后单击必要的验证方式。 ○5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。 ○6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。Transact-SQL语句进行导入导出:1.在SQL SERVER里查询access数据:SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB.mdb";User ID=Admin;Password=')…表名2.将access导入SQL server在SQL SERVER 里运行:SELECT *INTO newtableFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=' )…表名3.将SQL SERVER表里的数据插入到Access表中在SQL SERVER 里运行:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=" c:\DB.mdb";User ID=Admin;Password=')…表名 (列名1,列名2)select 列名1,列名2 from sql表实例:insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\db.mdb';'admin';'', Test) select id,name from TestINSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)SELECT *FROM sqltablename二、SQL SERVER 和EXCEL的数据导入导出1、在SQL SERVER里查询Excel数据:SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')…[Sheet1$]下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')…xactions2、将Excel的数据导入SQL server :SELECT * into newtableFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')…[Sheet1$]实例:SELECT * into newtableFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')…xactions3、将SQL SERVER中查询到的数据导成一个Excel文件T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'参数:S 是SQL服务器名;U是用户;P是密码说明:还可以导出文本文件等多种格式实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'在VB6中应用ADO导出EXCEL文件代码: Dim cn As New ADODB.Connectioncn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"4、在SQL SERVER里往Excel插入数据:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')…table1 (A1,A2,A3) values (1,2,3)T-SQL代码:INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')…[Filiale1$] (bestand, prokt) VALUES (20, 'Test')