當前位置:首頁 » 操作系統 » 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

熱點內容
彈跳的編程 發布:2024-10-26 19:37:28 瀏覽:453
主機銷售網站源碼 發布:2024-10-26 19:36:36 瀏覽:103
linux內核視頻 發布:2024-10-26 19:30:16 瀏覽:293
微信猜拳演算法 發布:2024-10-26 19:23:35 瀏覽:390
android編譯第三方庫 發布:2024-10-26 19:14:20 瀏覽:615
蘋果手機怎麼用藍牙傳照片給安卓 發布:2024-10-26 18:57:40 瀏覽:615
ios8程序加密 發布:2024-10-26 18:30:27 瀏覽:533
密碼門鎖沒電了用什麼數據線 發布:2024-10-26 18:21:11 瀏覽:855
linuxloop 發布:2024-10-26 18:20:46 瀏覽:932
linuxvg查看 發布:2024-10-26 18:09:51 瀏覽:585