在上一篇中关于Excel表格的打开,已经详细的讲解了Excel命名空间的引用,这里我就不重复了!
网址链接:
http://blog.csdn.net/kkfdsa132/archive/2010/03/14/5379529.aspx
下面,我们进入主题。
读取Excel方法有多种,这里我主要讲两种方式。
方法一:sql语句读取Excel
这种方法,对于连接过数据库的人来说,一定不陌生。
原理大致为:通过select语句读取Excel表的内容,存放在dataset中。这样,我们就可以很方便操作Excel表格。
大致分为以下几步:
记得先添加命名空间:
using System.Data.OleDb; //Excel表数据操作
1.创建连接,引用协议
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
//其中 参数”filePath“,是安放Excel的位置。例如:E:/1.xls。
OleDbConnection OleConn = new OleDbConnection(strConn);
2.打开连接,并执行sql语句,别忘了末尾关闭连接
OleConn.Open();
String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,sheet3等等
//这是要执行的sql语句,你应该不陌生吧!
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, "Sheet1");
OleConn.Close();
如果,还不清楚,不怕。下面,我们通过实例来加深理解。
源代码:
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("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}
以上代码实现了Excel的读取,并把内容存放在dataset中. 接着,讲解下如何应用该datatable。
方式一:把datatable内容读取到DataGridView中,显示所有Excel内容。
1.先添加DataGridView控件,并命名为dataGridView1
2.添加DataGridView数据绑定语句如下:
DataTable dt; //存放Excel表的内容
dt=ReadExcel("E://1.xls"); //这里的路径,指的是你Excel表格存放的路径
dataGridView1.DataSource = dt;
就这样,简单的显示,就完成了。
方式二:只显示你先要的内容。这个可以通过把DataTable当做数组来操作。
1.添加一个label标签,命名为label1
2.添加语句;
label1.Text = dt.Rows[x][y].ToString();
//这里的参数 x,y,对应的是你Excel表格的单元格内容。注意下,x,y是从0开始取值。
最后还有一点要说明,就是读取的内容是从Excel表格的第二行开始。第一行,类似于数据库中的字段名,是不读取的。
在后面的文章中,将继续和大家分享Excel的其他基本操作。
希望,对大家有用。