[英]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.