日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C#在客户端和服务端操作Excel文件

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#在客户端和服务端操作Excel文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、在客戶端把數(shù)據(jù)導(dǎo)入到Excel文件步驟 1、創(chuàng)建Excel application對(duì)象,打開或生成Excel文件 //服務(wù)端創(chuàng)建StringBuilder對(duì)象 ??? System.Text.StringBuilder? sb=new System .Text .StringBuilder (); ??? //指定客戶端執(zhí)行語言 sb.Append ("<Script Language=VBScript>"); ??? sb.Append ("<!--/r/n"); ??? sb.Append ("dim xls/r/n"); ??? //創(chuàng)建Excel application對(duì)象 ??? sb.Append ("Set xls=CreateObject(/"Excel.Application/")/r/n"); ??? //打開Excel文件 sb.Append ("xls.WorkBooks.Open(C://MyExcel.xls)/r/n"); 2、選定工作表,把數(shù)據(jù)導(dǎo)入到Excel ?//選定欲操作的Excel sb.Append ("xls.Sheets(1).Select/r/n"); //獲得要操作數(shù)據(jù)表的行、列數(shù) ??? ? int rows=dt.Rows.Count,cols=dt.Columns.Count? ; ????? //按行列將數(shù)據(jù)寫入Excel ?????? for (int j=brow+1;j<brow+cols ;j++) ??????? for (int i=bcol;i<bcol+rows ;i++)??????????? ??????????? ??????????? ??????? ? sb.Append ("xls.Sheets(1).Cells(" +(j-1)? + "," + (i) + ")=/"" + dt.Rows[i-bcol][j-brow].ToString ().Replace ("/"","'") + "/"/r/n");? ??? 3、顯示Excel文件 ??????? ??? sb.Append ("xls.visible=true/r/n"); ??? 4、釋放創(chuàng)建的Excel application對(duì)象 ??????? ??? sb.Append ("set xls=nothing/r/n"); ??????? ??? sb.Append ("-->"); ??? ??? sb.Append ("</script>");? 5、將代碼寫到客戶端 ??????? this.Page.RegisterClientScriptBlock("",sb.ToString ()); 二、在服務(wù)端操作Excel文件 服務(wù)端操作Excel文件,是把Excel文件看作數(shù)據(jù)庫,把Excel工作表當(dāng)作數(shù)據(jù)表 1、創(chuàng)建連接并打開連接 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、創(chuàng)建OleDbCommand對(duì)象用來操作Excel文件 protected System.Data .OleDb .OleDbCommand dbcmd;?? ??????? ?dbcmd=new OleDbCommand(); ??????? ?dbcmd.Connection =dbcnn; 3、操作Excel文件 ?? //獲得要操作數(shù)據(jù)表的行、列數(shù) ???? ????rows=dt.Rows.Count ; ??????? ?cols=dt.Columns.Count-1 ; ?????? //按行列將數(shù)據(jù)寫入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對(duì)象、關(guān)閉連接 dbcmd.Dispose (); ??? ? dbcnn.Close (); 5、可操作的SQL語句 //建立名為punchdate的工作表,并指明子段類型。 //創(chuàng)建工作表好處是可指定子段類型,否則都以字符串導(dǎo)出 ?? CREATE TABLE punchdate(mno char(5), punchNum float) ?? //插入新數(shù)據(jù) ?? Insert into punchdate(mno,punchNum) values(09,9000) ?? //更新數(shù)據(jù) ?? 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 說明工作表沒有含子段名的行 "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=/"Excel 8.0;HDR=No;/";Data Source=C://MyExcel.xls 8、注意對(duì)Web.config的設(shè)置 刪除以下項(xiàng)目 ?? <identity impersonate="true" /> ?? 或者這樣設(shè)置 ?? <identity impersonate="false" /> 三、兩種方法的優(yōu)缺點(diǎn) ???
操作Excel文件方法 優(yōu)點(diǎn) 缺點(diǎn)
客戶端 數(shù)據(jù)導(dǎo)入到Excel文件時(shí),很靈活,可將數(shù)據(jù)填入任意指定的存儲(chǔ)格,定位到任意位置 1、在客戶端生成ActiveX控件,要將站點(diǎn)設(shè)置成可信站點(diǎn)或?qū)?/span>IE進(jìn)行安全設(shè)置(降低了IE的安全性) 2、對(duì)調(diào)用的Excel模板文件,用戶要有權(quán)讀寫 3、在客戶端寫Excel文件速度比較慢
服務(wù)端 1、對(duì)調(diào)用的Excel模板文件,只要ASP.NET有權(quán)讀寫即可 2、在服務(wù)端寫Excel文件速度比較快 3、不要對(duì)IE進(jìn)行特別設(shè)置 對(duì)操作的文件只能當(dāng)作數(shù)據(jù)庫操作,不夠靈活
四、流輸出 原理:把數(shù)據(jù)填充到 DataGrid,然后把DataGrid內(nèi)容放到一個(gè)輸出流里面,并指定輸出流類型為 Excel System.IO .StringWriter? sw =new System.IO.StringWriter();//字符串流 System.Web .UI .HtmlTextWriter hw =new System.Web.UI.HtmlTextWriter(sw);//html 流,用字符串流作參數(shù) dg.RenderControl(hw);//DataGrid 流變成字符串流。 Response.ContentType ="application/vnd.ms-excel";//定義輸出流類型為 excel 流。關(guān)鍵語句。 Response.ContentEncoding=System.Text.Encoding.GetEncoding("Big5");//指定編碼類型為大五碼 Response.Write(sw.ToString());//輸出流 Response.End();//結(jié)束 ?

總結(jié)

以上是生活随笔為你收集整理的C#在客户端和服务端操作Excel文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。