[英]Reading data from Excel First Sheet - C#
有2個Excel工作表-FileA和FileB。
FileA中只有一張紙。 它具有數據並命名為“ Sep”。 肯定沒有隱藏的工作表。
FileB有3張紙。 第一個具有數據&的名稱為“ Sheet1”。
使用FileA進行測試,我編寫了這段代碼,並且工作正常。 FileB出現問題。 在代碼中檢查FileA模式時,我看到“ SEP”顯示為第2行。 所以,寫這個以獲得第一張紙的名字
string FirstSheetName = dtSchema.Rows[2]["TABLE_NAME"].ToString();
但是對於FileB,Sheet1顯示為架構中的第一行。
我應該寫些什么,以便總能從具有數據的第一張紙中獲取數據。
private void GetDataFromExcel() { DataSet dsExcel = null; if (true) { OleDbCommand cmdSelect = null; OleDbDataAdapter daXls = null; OleDbConnection xlsCSV = null; DataTable dtSchema = null; try { xlsCSV = new OleDbConnection(ExcelFileConnString); if (xlsCSV.State == ConnectionState.Closed) { xlsCSV.Open(); } dtSchema = xlsCSV.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); //Screenshots of dtSchema attached. if (dtSchema.Rows.Count > 0) { string FirstSheetName = dtSchema.Rows[2]["TABLE_NAME"] .ToString(); cmdSelect = new OleDbCommand("select * from [" + FirstSheetName + "]", xlsCSV); daXls = new OleDbDataAdapter(); daXls.SelectCommand = cmdSelect; dsExcel = new DataSet(); daXls.Fill(dsExcel); xlsCSV.Close(); } int count = dsExcel.Tables[0].Rows.Count; } catch (Exception) { } finally { if (xlsCSV != null && xlsCSV.State == ConnectionState.Open) { xlsCSV.Close(); xlsCSV.Dispose(); } if (cmdSelect != null) { cmdSelect.Dispose(); } } } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.