1. 程式人生 > >C# 讀取Excel中指定的Sheet名稱或索引

C# 讀取Excel中指定的Sheet名稱或索引


  /// <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
(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });

            //包含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; //繫結到介面
        }