C#讀取Excel工作薄中指定地區的儲存格資料
來源:互聯網
上載者:User
用C#讀取Excel工作薄中指定地區的儲存格資料
使用ADO.NET中的OleDbDataAdapter對象讀取Excel檔案,預設工作表中的有資料的第一行儲存格為欄位名稱。如果不想將工作薄中有資料的第一行儲存格當作資料表欄位名,可以用本文中的第二個執行個體實現。
建立Connection對象的資料來源連接字串:"Provider=Microsoft.Jet.Oledb.4.0;Data Source=Excel 檔案實體路徑 + ";Extended Properties=Excel 8.0"; 這兩個執行個體用Excel 2000以上版本製作。
-----------------------------------------------------------------------
執行個體1 讀取Excel工作薄中的全部資料
讀取Excel工作薄1(工作薄名稱:Sheet1)中的全部資料,在OleDbDataAdapter對象中的SQL語句應為:"Select 欄位列表 From [工作表名$]"。
程式碼範例:
public void ReadExcel(string sExcelFile)
{
string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
OleDbConnection connection = new OleDbConnection(sConnectionString);
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]",connection);
DataSet ds = new DataSet();
adp.Fill(ds,"Book1");
grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
grd_Excel.DataBind();
}
-----------------------------------------------------------------------
執行個體2 讀取Excel工作薄選定地區中的資料
首先在活頁簿中,左鍵拖拽選取要定義成為表的地區,從菜單中選擇‘插入’->‘名稱’->‘定義’,在‘定義名稱’對話方塊出現中鍵入表的名字:“TestTable”,OK。
那麼SQL語句應為:SELECT * FROM TestTable。
程式碼範例:
public void ReadExcel(string sExcelFile)
{
string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0";
OleDbConnection connection = new OleDbConnection(sConnectionString);
OleDbDataAdapter adp = new OleDbDataAdapter("SELECT * FROM TestTable", connection);
DataSet ds = new DataSet();
adp.Fill(ds,"Book1");
grd_Excel.DataSource = ds.Tables["Book1"].DefaultView;
grd_Excel.DataBind();
}