C# 讀取Excel中指定的Sheet名稱或索引
阿新 • • 發佈:2019-02-20
/// <summary>
/// 根據excel的檔案的路徑提取其中表的資料
/// </summary>
/// <param name="Path">Excel檔案的路徑</param>
private void GetDataFromExcelWithAppointSheetName(string Path)
{
//連線串
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架構,包括各個sheet表的名稱,型別,建立時間和修改時間等
DataTable dtSheetName = conn.GetOleDbSchemaTable
//包含excel中表名的字串陣列
string[] strTableNames = new string[dtSheetName.Rows.Count];
for (int k = 0; k < dtSheetName.Rows.Count; k++)
{
strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
}
OleDbDataAdapter myCommand = null;
DataTable dt = new DataTable();
//從指定的表明查詢資料,可先把所有表明列出來供使用者選擇
string strExcel = "select * from [" + strTableNames[0] + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
dt = new DataTable();
myCommand.Fill(dt);
dataGridView1.DataSource = dt; //繫結到介面
}