Проблема с использованием OleDbDataAdapter для извлечения данных из листа Excel

Во-первых, я хочу сказать, что Я здесь на глубокой воде, поскольку я просто вношу некоторые изменения в код, который написан кем-то другим в компании, использую OleDbDataAdapter для «общения» с Excel, а я с этим не знаком. Там есть одна ошибка, за которой я просто не могу уследить.

Я пытаюсь использовать OleDbDataAdapter для чтения файла Excel, содержащего около 450 строк.

В коде это сделано так:

connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source='" + path + "';" + "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
connection.Open();
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand.CommandText, connection);
objAdapter.Fill(objDataSet, "Excel");

foreach (DataColumn dataColumn in objTable.Columns) {
  if (dataColumn.Ordinal > objDataSet.Tables[0].Columns.Count - 1) {
    objDataSet.Tables[0].Columns.Add();
  }
  objDataSet.Tables[0].Columns[dataColumn.Ordinal].ColumnName = dataColumn.ColumnName;
  objImport.Columns.Add(dataColumn.ColumnName);
}

foreach (DataRow dataRow in objDataSet.Tables[0].Rows) {
   ...
}

Кажется, все работает нормально, за исключением одного. Второй столбец заполнен в основном четырехзначными числами, такими как 6739, 3920 и т.д., но в пяти строках есть буквенно-цифровые значения, такие как 8201NO и 8205NO. Сообщается, что эти пять ячеек имеют пустое содержание вместо их буквенно-цифрового содержания. Я проверил в Excel, и все ячейки в этом столбце помечены как текст.

Между прочим, это файл xls, а не xlsx.

Кто-нибудь знает, почему эти ячейки отображаются пустыми в DataRow, а числовые отображаются нормально? Есть и другие столбцы с буквенно-цифровым содержанием, которые отображаются нормально.

6
задан Abe Miessler 28 September 2010 в 22:20
поделиться