Странная проблема при загрузке электронной таблицы через C #.
Вот пример таблицы, которую я использую:
JournalISSN
-----------
1650327
223956
1651781
9254927
3064530
9209964
924977X <- this is causing an error
3768716
Мой код загрузки (для краткости)
string connectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data Source="
+ Server.MapPath("/admin/journals/upload.xls") + "; Extended Properties=\"Excel 8.0;HDR=YES;\"";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
using (DbCommand Command = Connection.CreateCommand())
{
Command.CommandText = "SELECT [JournalISSN], JournalTitle, JournalDescription, ImpactFactor, Psychology "
+ "FROM [Sheet1$]";
using (DbDataReader DataReader = Command.ExecuteReader())
{
while (DataReader.Read())
{
Response.Write(string.IsNullOrEmpty(DataReader["JournalISSN"].ToString()) + "<br/>");
}
}
Теперь, что происходит, когда DataReader попадает в строку с «X» в столбце «JournalISSN», он возвращает True (то есть, он пуст / пуст), все остальные столбцы возвращают false. Таким образом, проблема заключается в том, что всякий раз, когда столбец содержит символ, который не является числовым, он не извлекается во время загрузки.
Несколько вещей, которые я пробовал:
- Перемещение 'X' в разные позиции в тексте (например, 111X111)
- Переход на другую букву
- Удаление ячейки и повторный запуск
- Установка типа формата в Excel на «Общий» - применяется ко всем строкам.
Буду благодарен за любую помощь / понимание того, почему это происходит.
Ура, Шон