Проблема с использованием 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 и т. Д., Но строки fice имеют буквенно-цифровые значения, такие как 8201NO и 8205NO. Сообщается, что эти пять ячеек содержат пустое содержимое вместо их буквенно-цифрового содержимого. Я проверил в Excel, и все ячейки в этих столбцах помечены как текст.
Кстати, это файл xls, а не xlsx.
Кто-нибудь знает, почему эти ячейки отображаются как пустые в DataRow, а числовые отображаются нормально? Есть другие столбцы с буквенно-цифровым содержимым, которые отображаются просто отлично.