/// 查看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看看效果,。
C# winform 開(kāi)發(fā)之Excel操作(二)------讀取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ù)中的字段名,是不讀取的,。