我有這樣的代碼讀取Excel文件:有沒有一種簡單的方法來刪除/忽略使用OleDbConnection Excel文件中的列名上面的行?
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=YES\";"; using (OleDbConnection conn = new OleDbConnection(connStr)) { conn.Open(); DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); string sheetName = dtSchema.Rows[0].Field("TABLE_NAME"); OleDbDataAdapter sheetAdapter = new OleDbDataAdapter("select * from [" + sheetName + "]", conn); sheetAdapter.Fill(sheetData); DataTable dtColumns = conn.GetSchema("Columns", new string[] { null, null, sheetName, null }); ... }
我的代碼需要使用/看列標題。以上僅適用於列標題是第一行的情況。有時,我們從客戶端接收到的Excel文件在列標題上方有幾行,並帶有一些關於Excel中數據的元數據。發生這種情況時,列標題將位於第10行。
我可以打開Excel文件並手動刪除列標題上方的額外行,這可以解決問題。但是我們想要刪除這個手動步驟。
是否有任何簡單的方法來刪除/忽略列頭之上的這些額外的起始行?或者我必須拿出自定義代碼?我能想到的最好方法是關閉HDR
,然後每列中具有值的第一行是列標題行。有更容易的方法嗎?