C#在客戶端和服務端操作Excel文件

一、 在客戶端把數據導入到 Excel 文件步驟

1、 創建 Excel application 對象,打開或生成 Excel 文件

// 服務端創建 StringBuilder 對象

System.Text.StringBuilder sb= new System .Text .StringBuilder ();

// 指定客戶端執行語言

sb.Append ("

 1<script language="VBScript">"); 
 2
 3sb.Append ("<!--\r\n"); 
 4
 5sb.Append ("dim xls\r\n"); 
 6
 7//  創建  Excel application  對象 
 8
 9sb.Append ("Set xls=CreateObject(\"Excel.Application\")\r\n"); 
10
11//  打開  Excel  文件 
12
13sb.Append ("xls.WorkBooks.Open(  C:\\\MyExcel.xls  )\r\n"); 
14
152、  選定工作表,把數據導入到  Excel 
16
17//  選定欲操作的  Excel  表 
18
19sb.Append ("xls.Sheets(1).Select\r\n"); 
20
21//  获得要操作数据表的行、列数 
22
23int  rows=dt.Rows.Count,cols=dt.Columns.Count  ; 
24
25//  按行列将数据写入  Excel  表 
26
27for  (  int  j=brow+1;j<brow+cols ;j++) 
28
29for  (  int  i=bcol;i<bcol+rows ;i++) 
30
31sb.Append ("xls.Sheets(1).Cells(" +(j-1)  \+ "," + (i) + ")=\"" + dt.Rows[i-bcol][j-brow].ToString ().Replace ("\"","'") + "\"\r\n"); 
32
333  、显示  Excel  文件 
34
35sb.Append ("xls.visible=true\r\n"); 
36
374  、釋放創建的  Excel application  對象 
38
39sb.Append ("set xls=nothing\r\n"); 
40
41sb.Append ("-->"); 
42
43sb.Append ("</script>

");

5 、將代碼寫到客戶端

this .Page.RegisterClientScriptBlock("",sb.ToString ());

二、 在服務端 操作 Excel 文件

服務端操作 Excel 文件,是把 Excel 文件看作數據庫,把 Excel 工作表當作數據表

1、 創建連接並打開連接

protected System.Data .OleDb.OleDbConnection dbcnn;

cnnstr="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=Yes;";Data Source= C:\\MyExcel.xls ” ;

dbcnn= new OleDbConnection (cnnstr);

dbcnn.Open ();

2、 創建 OleDbCommand 對象用來操作 Excel 文件

protected System.Data .OleDb .OleDbCommand dbcmd;

dbcmd= new OleDbCommand();

dbcmd.Connection =dbcnn;

3、 操作 Excel 文件

// 获得要操作数据表的行、列数

rows=dt.Rows.Count ;

cols=dt.Columns.Count-1 ;

// 按行列将数据写入 Excel 文件 Sheet1 工作表

for ( int i=0;i<rows;i++)

{

olestr=" insert into [Sheet1$] values(";

for ( int j=0;j<cols;j++)

olestr=olestr+"'"+dt.Rows[i][j].ToString ()+"',";

olestr+="'"+Convert.ToDecimal (dt.Rows[i][cols].ToString ())+"')";

dbcmd.CommandText =olestr;

dbcmd.ExecuteNonQuery ();

}

4、 釋放 OleDbCommand 對象、關閉連接

dbcmd.Dispose ();

dbcnn.Close ();

5、 可操作的 SQL 語句

// 建立名為 punchdate 的工作表,並指明子段類型。

// 創建工作表好處是可指定子段類型,否則都以字符串導出

CREATE TABLE punchdate( mno char(5), punchNum float )

// 插入新數據

Insert into punchdate(mno,punchNum) values( ‘ 09 ’ ,9000)

// 更新數據

Update punchdate set punchNum=8000 where mno= ’ 09 ’

6、 不可操作的 SQL 語句

Delete from punchdate

7、 注意連接子串

//HDR=Yes 説明工作表第一行為子段名

"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0; HDR=Yes ;";Data Source= C:\\MyExcel.xls ”

//HDR=No 説明工作表沒有含子段名的行

<

Published At
Categories with Web编程
Tagged with
comments powered by Disqus