辅助方法:
public void AcquireTwoArray(DataSet ds)
{
foreach (DataTable dt in ds.Tables)//遍历所有的DataTable
{
foreach (DataRow dr in dt.Rows)//遍历所有的行
{
foreach (DataColumn dc in dt.Columns)//遍历所有的列
{
Console.Write("{0},{1},{2}", dt.TableName, dc.ColumnName, dr[dc].ToString());//表名,列名,单元格数据
}
}
}
}
public System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection ExcelConn = new OleDbConnection(strCon);
try
{
string strCom = string.Format("SELECT * FROM [Sheet1$]");
ExcelConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + tableName + "$]");
ExcelConn.Close();
return ds;
}
catch
{
ExcelConn.Close();
return null;
}
}
调用:
string path = AppDomain.CurrentDomain.BaseDirectory + “report.xlsx”;
Excel1 ex=new Excel1 ();
string path1 = AppDomain.CurrentDomain.BaseDirectory + "excel1.xls";
DataSet dse = ex.ExcelSqlConnection(path, "report.xls");
ex.AcquireTwoArray(dse);
注意:当excel版本不一样时,会弹出外部表不是预期格式错误,只需修改链接字符窜即可
string strCon = “Provider=Microsoft.Ace.OleDb.12.0;” + “data source=” + filepath + “;Extended Properties=’Excel 12.0; HDR=Yes; IMEX=1’”;