一、引用的库文件
using System.Data.OleDb;
二、连接到Excel文件
string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + textFile.Text + ";Extended Properties=‘Excel 12.0; HDR=NO; IMEX=1‘"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open();
如图,使用的是12.0版的OleDB,这样可以访问xls,xlsx文件,如果用以前的版本8.0,只能访问xls
三、访问Excel的Table页面
DataSet ds = new DataSet(); OleDbDataAdapter odda = new OleDbDataAdapter("SELECT * FROM [标签规划表$]", conn); odda.Fill(ds);如图,我访问的Excel表的Table页面叫做“标签规划表”,如果是默认的页面,一般以Sheet1、Sheet2的形式出现,那么以上语句中替换成Sheet1和Sheet2即可。
四、访问DataSet数据
int iRowCount = ds.Tables[0].Rows.Count; for (int i = 2; i < iRowCount; ++i) { string sPTN = ds.Tables[0].Rows[i][7].ToString(); if (sPTN.Length <= 0) { continue; } }
如图,先得到表的行数iRowCount,然后从第3行开始遍历每行,每行取第7列,判断是否为空。
五、总结
基本上可以用以上方法访问Excel的所有表格数据了。