当前位置:首页 » 操作系统 » c从数据库导出excel

c从数据库导出excel

发布时间: 2022-05-23 20:22:26

❶ 如何将数据库中的数据导出到excel

以下都只是介绍操作的原理,具体要求要在应用中具体分析改变。
1. 此方法常用在form或者Console Application中,使用时须用要添加Reference,具体做法:
右键点击项目添加“Add Reference”,在Tom组件下,选择“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

[csharp] view plain
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()来实现
[csharp] view plain
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();
}

❷ 如何实现将数据库里面表导成excel表

不知您用的是啥数据库?
Access:
选中表>鼠标右键菜单>导出>Excel
sql Server:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM <库名.dbo.表名>" queryout C:/输出文件.xls -c -q -S"(local)" -U"<用户名如sa>" -P"<口令>"'

例子:EXEC master..xp_cmdshell 'bcp "SELECT * FROM <库名.dbo.表名>" queryout C:/sysdb.xls -c -q -S"(local)" -U"sa" -P""'

❸ 怎样从数据库里把自己需要的数据导出到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 newtable
FROM 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 Test

INSERT 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')...xactions

2、将Excel的数据导入SQL server :
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

3、将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.Connection
cn.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')

❹ C#中如何将数据库数据直接导出到Excel

// <summary>
/// 导出Excel格式
/// </summary>
/// <param name="gridView"></param>
/// <param name="filename"></param>
private static void ExportGridViewToExcel(DevExpress.XtraGrid.Views.Grid.GridView gridView, string filename)
{
SaveFileDialog sfd = new SaveFileDialog();
filename += DateTime.Now.ToString("yyyyMMdd") + "-" + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString();

sfd.FileName = filename;
sfd.Filter = "Excel files (*xls) | *.xls";
sfd.RestoreDirectory = true;

if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Trim() != null)
{
int rowIndex = 2;
int colIndex = 0;
int colNum = gridView.Columns.Count;

System.Reflection.Missing miss = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Excel.Application xlapp = new
Microsoft.Office.Interop.Excel.Application(true);
xlapp.Visible = true;

Microsoft.Office.Interop.Excel.Workbooks mBooks =
(Microsoft.Office.Interop.Excel.Workbooks)xlapp.Workbooks;

Microsoft.Office.Interop.Excel.Workbook mBook =
(Microsoft.Office.Interop.Excel.Workbook)mBooks.Add(miss);

Microsoft.Office.Interop.Excel.Worksheet mSheet =
(Microsoft.Office.Interop.Excel.Worksheet)mBook.ActiveSheet;

Microsoft.Office.Interop.Excel.Range mRange = mSheet.get_Range((object)"A1", System.Reflection.Missing.Value);

//设置对齐方式
mSheet.Cells.HorizontalAlignment = XlHAlign.xlHAlignCenter;
//设置文字自动换行
//mSheet.Cells.WrapText = true;
//设置标题行高度
((Microsoft.Office.Interop.Excel.Range)mSheet.Rows["1:1", System.Type.Missing]).RowHeight = 20;
//设置数据行高度
((Microsoft.Office.Interop.Excel.Range)mSheet.Rows["2:" + gridView.RowCount + 1, System.Type.Missing]).RowHeight = 16;
//设置字体大小(10号字体)
mSheet.Range[mSheet.Cells[1, 1], mSheet.Cells[gridView.RowCount + 1, gridView.Columns.Count]].Font.Size = 10;
//设置单元格边框
Microsoft.Office.Interop.Excel.Range range1 =gridView.RowCount>17?mSheet.Range[mSheet.Cells[1, 2], mSheet.Cells[gridView.RowCount + 1, gridView.Columns.Count]]:mSheet.Range[mSheet.Cells[1, 2], mSheet.Cells[19, gridView.Columns.Count]];
range1.Borders.LineStyle = 1;
//设置标题颜色
mSheet.Range[mSheet.Cells[2, 1], mSheet.Cells[1, gridView.Columns.Count]].Font.Color =Color.Blue;
//将-¥000格式化成¥-000
string InOutInvSum = Convert.ToDecimal(gridView.GetRowCellValue(irow, gridView.Columns[icol])).ToString("C").Replace("¥", "").Replace("全角¥", "");
mSheet.Cells[rowIndex, colIndex] = "¥" + InOutInvSum;

Microsoft.Office.Interop.Excel.Range rH = mSheet.get_Range("C1","L1");
rH.Merge(0);
//报表的标题vlookup
mSheet.Cells[1,3] = "";

//写标题
for (int row = 2; row <= gridView.Columns.Count; row++ )
{
mSheet.Cells[2, row] = gridView.Columns[row - 1].GetTextCaption();

}
try
{
for (int irow = 0; irow < gridView.Columns.Count; irow++)
{
rowIndex++;
colIndex = 1;
for (int icol = 1; icol < gridView.Columns.Count; icol++)
{
colIndex++;
mSheet.Cells[rowIndex, colIndex] = gridView.GetRowCellValue(irow, gridView.Columns[icol]);

}//end 列
}//end 行
mBook.SaveAs(sfd.FileName,
Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel7, miss, miss, miss, miss,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
miss, miss, miss, miss, miss);
//retuen true;

}//end TRY
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
mBook.Close(false, miss, miss);
mBooks.Close();
xlapp.Quit();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(mRange);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(mSheet);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(mBook);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(mBooks);
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlapp);
GC.Collect();
}

}
}

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

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

1、准备好查询语句


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

❻ c# 将数据库导出EXCEL

SQL语句即可实现excel和sql的导入导出

在按钮事件中执行相关存储过程:

******* 导出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

---------------------------------------------------------------

EXCEL TO SQL SERVER
先用ODBC建立一个数据源,数据源指向sql server的表,然后用TTABLE控件联上数据库,
再建立一个OleObject,然后用Append,Post把数据导入到EXCEL表。
实例:
var
MSExcel:Variant;//定义一个全程变量

MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Open(Edit1.Text);//创建一个OleObject

Table.Active:=true;
Table.Append;
Table.FieldByName('字段名').Value:=MSExcel.Cells[rows_i,1].Value;
Table.Post;//实现导入

❼ 如何把数据库中数据导成excel文件

Access和Excel都是微软的产品,其最大特点就是有较好的兼容性。所以使用微软的office套件。打开access数据库表,通过简单的拷贝就可以直接复制到excel表格中。

这里不知道你的用途是什么,如果是程序设计需要,需要通过相应的API来实现。各种程序设计语言提供了不同方式与方法。最简单的是微软公司自己的在.net开发环境下提供有dll的动态连接库接口

不知道你是不是在做.net编程,下面的答案也许对你有用,我以前做过,应该对大数据有效
一些系统可能需求把数据导出到Access或者Excel文件格式,以方便的传递数据、打印等。
Excel 文件或者 Access这两种需要导出的文件可能并不是事先就存在的,这就需要我们自己编程生成他们,下面整理一下生成这两个文件的一些方法,只罗列最常用的。并不全。

一、首先生成Excel文件。

方案一、如果用Excel保存的只是二维数据,也就是把他当数据库的来用。
最简单,你不用引用任何额外组件,只需要用 OLEDB 就可以完成创建Excel文件。 范例代码如下。

using System.Data.OleDb;public static void CreateExcelFile2() ...

using System.Data.OleDb;public static void CreateExcelFile2() ...
在你执行创建表的同时,系统如果发现Excel文件不存在,就自动完成了Excel文件的创建。这点如果没接触过的人,可能会不知道的。

至于对其中的增加、修改操作, 跟普通数据库没啥两样,就不描述了。
可以参考以下文章:

方案二、直接生成一个使用间隔符号隔开每一项数据的纯文本文件,但是文件的后缀是 XLS 。

注意:这时候,如果你直接用Excel打开这样的文件,没问题,一切正常,但是如果你用ADO.net 读取这个文件的时候,你的链接引擎不应该是Excel,而是文本文件(Microsoft Text Driver)。也就是链接字符串不应该是
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\aa2.xls;Extended Properties=Excel 8.0;"
而应该是下面的方式:

OLEDB的方式连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\11.txt;Extended Properties='text;HDR=No;FMT=TabDelimited'
ODBC的方式读TXT字符串写法:
Driver=;Dbq=C:\\11.txt;Extensions=asc,csv,tab,txt;

请参考以下文章:

方案三、你要创建的Excel文件,有一些Excel自己的特色需要创建,这就需要使用 Com 了,即:Microsoft Excel Object Library了

请添加 Microsoft Excel 11.0 Object Library 对它的引用,根据你装的Office的版本,这个组件库的版本也不一样。

范例代码:

public static void CreateExcelFile() ...

我这里只是简单的创建了Excel文件,没有更多的操作Excel,如果希望看到更多的操作方法,请参考以下几篇文章:

;en-us;306023&Proct=vcSnet#6

二、生成Access 数据库
Access 毕竟是一个数据库,所以Excel上述第一种方法,无法适用。
创建Access 数据库文件可以使用 ADOX,
ADOX与OleDB的区别:ADOX是 data api 只是一个接口, OLEDB 是数据提供者,API 去调用 数据提供者。

范例代码:
使用前,请添加引用 Microsoft ADO Ext. 2.x for DDL and Security 根据你的操作系统,可能这里的版本也不一样。

using ADOX;using System.IO; public static void CreateAccessFile(string FileName) ... }
上述代码只是生成了Access数据库,适用ADOX你也可以操作数据库,增加表等等操作,具体请参考以下文章:

引自

❽ vc导出access数据库数据到excel怎样实现

先读取access数据库,写入Excel通过引用Office控件或者说类库来完成,你可以在Office帮助文件中查到有关内容(帮助文件范例一般是VB
的,但是用法差不多),前提是你的office是完整安装的。

❾ C#实现 SQL数据库导出到EXCEL

很明显的,'bcp
Northwind.dbo.myTabe
out
"c:
est.xls"
/c
-/S"192.168.1.239:1433"
/U"sa"-p"yxaf123"',这个错误有多处,最好在命令提示符里调试一下再改成C#的格式。
bcp
Northwind.dbo.?????
out
c:
est.xls
/c
/S
[服务器名]
/U
??
/P
??????
此句在我机器上命令提示符里能通过,能生成test.xls

热点内容
mx2录音文件在哪个文件夹 发布:2024-10-26 17:28:13 浏览:901
多叉树存储 发布:2024-10-26 17:25:59 浏览:145
wincc中c脚本编译后有错误 发布:2024-10-26 17:25:01 浏览:746
获取了ip怎么进他的服务器 发布:2024-10-26 17:17:17 浏览:493
存储的反应 发布:2024-10-26 17:08:39 浏览:442
sql三张表查询 发布:2024-10-26 17:05:23 浏览:344
怎么看电脑wifi密码是多少 发布:2024-10-26 17:00:10 浏览:325
上传gif不会动 发布:2024-10-26 16:59:55 浏览:13
volte手机如何解锁密码 发布:2024-10-26 16:54:04 浏览:105
如何将安卓手机刷为蜂巢系统 发布:2024-10-26 16:43:44 浏览:831