久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C# winform 開(kāi)發(fā)之Excel操作

 Jcstone 2013-08-01

 C# winform 開(kāi)發(fā)之Excel操作(一)------打開(kāi)Exce表


在開(kāi)始之前,,先要導(dǎo)入Excel的類庫(kù),。步驟如下
把鼠標(biāo)移動(dòng)解決方案---->右擊----->選擇“添加引用”---->會(huì)出現(xiàn)一個(gè)對(duì)話框---->選擇標(biāo)題為.net的頁(yè)面----->然后選擇“Microsoft.Office.Interop.Excel”----->單擊確定就可以。
之后,,你會(huì)在解決方案中的引用文件夾中看到名為“Microsoft.Office.Interop.Excel”的組件,。
好了,添加了這個(gè)引用,,自然下一步是在程序中添加它的命名空間,,如下:
using Microsoft.Office.Interop.Excel;
或者
using Excel;
這里要聲明一下,以上引用方式,,并不是所有電腦都適用的,。至少,我的不行,,呵呵,。所以,下面我介紹第三種引用方法:
 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); //引用Excel對(duì)象
即在你要用的地方時(shí)候,,寫(xiě)上它的命名空間,。
下面輪到,實(shí)戰(zhàn)了,。
代碼如下:
/// <summary>
        /// 查看Excel表格
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button9_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); //引用Excel對(duì)象
                Microsoft.Office.Interop.Excel.Workbook wBook = excel.Application.Workbooks.Add(strpath); //引用Excel工作簿
                excel.Visible = true; //使Excel可視,。有興趣的,設(shè)置為false看看效果,。
        }
以上代碼,,是我一個(gè)小程序的一部分,叫做點(diǎn)名系統(tǒng),。即從Excel表中讀取學(xué)號(hào)和姓名,,顯示出來(lái),并讀出該學(xué)生姓名以及對(duì)學(xué)生的遲到曠課進(jìn)行登記,,更新Excel表格,。在后面,我會(huì)提供源程序,!
在后面的文章中,,我會(huì)繼續(xù)和大家分享Excel的操作。
希望對(duì)你,,有幫助,!
 
 
 

C# winform 開(kāi)發(fā)之Excel操作(二)------讀取Excel表格

 

讀取Excel方法有多種,這里我主要講兩種方式,。
 
方法一:sql語(yǔ)句讀取Excel

這種方法,,對(duì)于連接過(guò)數(shù)據(jù)庫(kù)的人來(lái)說(shuō),一定不陌生,。

原理大致為:通過(guò)select語(yǔ)句讀取Excel表的內(nèi)容,,存放在dataset中,。這樣,我們就可以很方便操作Excel表格,。

大致分為以下幾步:

記得先添加命名空間:

using System.Data.OleDb;    //Excel表數(shù)據(jù)操作

1.創(chuàng)建連接,,引用協(xié)議

 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";

//其中 參數(shù)”filePath“,是安放Excel的位置,。例如:E:/1.xls,。

OleDbConnection OleConn = new OleDbConnection(strConn);

2.打開(kāi)連接,并執(zhí)行sql語(yǔ)句,,別忘了末尾關(guān)閉連接

OleConn.Open();
String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名稱,,比如sheet2,sheet3等等

//這是要執(zhí)行的sql語(yǔ)句,,你應(yīng)該不陌生吧,!

OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, "Sheet1");
OleConn.Close(); 

 

如果,還不清楚,,不怕,。下面,我們通過(guò)實(shí)例來(lái)加深理解,。

源代碼:

 public static DataTable ReadExcel(string filePath)
        {
            try
            {
                string strConn;
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名稱,,比如sheet2,等等

                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "Sheet1");
                OleConn.Close();

                return OleDsExcle.Tables["Sheet1"];
            }
            catch (Exception err)
            {
                MessageBox.Show("數(shù)據(jù)綁定Excel失敗!失敗原因:" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                return null;
            }
        }

 

以上代碼實(shí)現(xiàn)了Excel的讀取,,并把內(nèi)容存放在dataset中. 接著,,講解下如何應(yīng)用該datatable。

方式一:把datatable內(nèi)容讀取到DataGridView中,,顯示所有Excel內(nèi)容,。
1.先添加DataGridView控件,并命名為dataGridView1
2.添加DataGridView數(shù)據(jù)綁定語(yǔ)句如下:
DataTable dt;   //存放Excel表的內(nèi)容
dt=ReadExcel("E://1.xls"); //這里的路徑,,指的是你Excel表格存放的路徑
dataGridView1.DataSource = dt;
就這樣,,簡(jiǎn)單的顯示,就完成了,。

方式二:只顯示你先要的內(nèi)容,。這個(gè)可以通過(guò)把DataTable當(dāng)做數(shù)組來(lái)操作。
1.添加一個(gè)label標(biāo)簽,,命名為label1
2.添加語(yǔ)句;
label1.Text = dt.Rows[x][y].ToString();
//這里的參數(shù) x,y,,對(duì)應(yīng)的是你Excel表格的單元格內(nèi)容。注意下,,x,,y是從0開(kāi)始取值。

最后還有一點(diǎn)要說(shuō)明,就是讀取的內(nèi)容是從Excel表格的第二行開(kāi)始,。第一行,,類似于數(shù)據(jù)庫(kù)中的字段名,是不讀取的,。

C# winform 開(kāi)發(fā)之Excel操作(三)------Excel表格處理(增刪改)和保存

Excel表格的修改方式有很多,。這里我介紹下,我知道的兩種方法,。

1.通過(guò)sql語(yǔ)句,修改,。這也是我比較喜歡的方法,。因?yàn)楸容^方便,和效率高,。對(duì)于有數(shù)據(jù)庫(kù)基礎(chǔ)的,,上手也快。

2.通過(guò)Excel提供的對(duì)象類,,進(jìn)行訪問(wèn),。這種方式,效率比較低,,反應(yīng)慢,。因?yàn)檫@個(gè)操作過(guò)程,是要打開(kāi)Excel文件的,,Excel的開(kāi)啟占去了許多時(shí)間,。

 

 

方法一:通過(guò)sql語(yǔ)句進(jìn)行修改,方法類似于數(shù)據(jù)庫(kù)操作,。

下面給出源代碼,!代碼中注釋。

 /// <summary>
        /// 通過(guò)sql語(yǔ)句,,修改并保存Excel
        /// </summary>
        /// <param name="strsql"></param>
        /// <param name="filepath"></param>
        private void DoSql(string strsql, string filepath)//這里的strsql指要執(zhí)行的sql語(yǔ)句,,filepath指Excel的路徑,例如"E://1.xls"
        {
                 try
                {
                    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=no;IMEX=0'";//連接Excel OLEDB協(xié)議
                    OleDbConnection oledCon = new OleDbConnection(ConnectionString);//創(chuàng)建連接對(duì)象
                    oledCon.Open();//開(kāi)啟連接
                    OleDbCommand oledCom = new OleDbCommand(strsql, oledCon);//
                    oledCom.ExecuteNonQuery();//執(zhí)行sql語(yǔ)句
                    oledCon.Close();//關(guān)閉連接
                }
                catch (Exception err)
                {
                    MessageBox.Show("Excel操作失敗!失敗原因:" + err.Message, "提示信息",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
           

        }

 

下面再給給出一段代碼,,展示下如何調(diào)用上面語(yǔ)句,。

首先,拉一個(gè)Button控件,和兩個(gè)textbox

  private void button1_Click(object sender, EventArgs e)
        {

            string num = int.Parse(textBox1.text);

            string xuehao = textBox2.text;

            string strsql = "Update [Sheet1$] set 曠課次數(shù)='"+num.ToString()+"' where 學(xué)號(hào)='"+xuehao+"'";

//修改數(shù)據(jù),,其中曠課次數(shù),,姓名是列名
            DoSql(strsql, "E://1.xls");
        }

 

上面舉得例子是更新語(yǔ)句,同理,,也可以通過(guò)insert語(yǔ)句進(jìn)行插入,,delete語(yǔ)句進(jìn)行刪除。這里簡(jiǎn)單舉例下:

string strsql = "insert into [Sheet1$](曠課次數(shù),姓名) values(12,'張三')";//寫(xiě)入新的數(shù)據(jù)

string strSql = "delete * from [Sheet1$] where 學(xué)號(hào)='張三'"; //刪除一行

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多