在使用GetOleDbSchemaTable读取excel列名时发生

经过一些谷歌search后,我发现如何读取excel列名如何使用GetOleDbSchemaTable和Visual Basic .NET检索架构信息 。 虽然示例是在VB.Net,我使用的是C#.net。 我的代码是:

public DataSet ReadXslToDataset(string fileName,string sheetName) { ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileName+";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'"; using (objConn = new OleDbConnection(ConnectionString)) { objConn.Open(); String[] restrection = { null, null, sheetName, null }; dtColumnNames = objConn.GetOleDbSchemaTable (OleDbSchemaGuid.Columns, restrection); string strColumnName = string.Empty; if (dtColumnNames != null) strColumnName = dtColumnNames.Rows[0]["COLUMN_NAME"].ToString(); } } 

但是我发现列字段是空白,从此以后得到例外

位置0没有行。

excel文件看起来像

 S.No Issue 1 log4net message pattern not displayed properly in the log file 2 Reading blank rows from Excel while populating into dataset 

我已经确保我传递正确的文件和表格名称。

位置0没有行。

尝试

 if (dtColumnNames != null) { if(dtColumnNames.Rows.Count > 0){ strColumnName = ColumnNames.Rows[0]["COLUMN_NAME"].ToString } } 

对不起,我可能会略微语法 – 我更像一个VB.net的家伙。