OleDB и смешанные типы данных Excel: недостающие данные

У меня есть рабочий лист Excel, который я хочу прочитать в таблицу данных - все хорошо за исключением одного конкретного столбца в моем листе Excel. Столбец, 'ProductID', является соединением значений как ########## и n#########.

Я пытался позволить OleDB обработать все отдельно автоматически путем чтения его в набор данных/таблицу данных, но любые значения в 'ProductID' как n###### отсутствуют, проигнорированный и оставленный незаполненный. Я пытался вручную создать свой DataTable цикличным выполнением через каждую строку с datareader, но с теми же самыми результатами.

Вот код:

// add the column names manually to the datatable as column_1, column_2, ...
for (colnum = 0; colnum < num_columns; colnum ++){
  ds.Tables["products"].Columns.Add("column_" +colnum , System.Type.GetType("System.String")); 
}
while(myDataReader.Read()){
  // loop through each excel row adding a new respective datarow to my datatable 
  DataRow a_row = ds.Tables["products"].NewRow();
  for (col = 0; col < num_columns; col ++){
    try {  a_row[col] = rdr.GetString(col);  }
    catch {  a_row[col] = rdr.GetValue(col).ToString(); }
  }
  ds.Tables["products"].Rows.Add(a_row);
}

Я не понимаю, почему это не позволит мне читать в значениях как n######. Как я могу сделать это?

50
задан Charles Caldwell 16 April 2014 в 05:42
поделиться

1 ответ

Есть два способа обработки смешанных типов данных и Excel.

Метод 1

  • Откройте электронную таблицу Excel и вручную установите желаемый формат столбца. В данном случае «Текст».

Метод 2

6
ответ дан 7 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: