Ошибка при чтении имен столбцов Excel с помощью GetOleDbSchemaTable - PullRequest
3 голосов
/ 05 мая 2010

После некоторого поиска в Google я узнал, как читать имена столбцов 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

и я убедился, что передаю правильное имя файла и листа.

1 Ответ

0 голосов
/ 09 августа 2012

В позиции 0 строки нет.

Попробуйте

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

Извините, я могу немного потерять синтаксис - я скорее парень из VB.net.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...