Ошибка при импорте Excel в DataTable в C # окнах форм - PullRequest
0 голосов
/ 20 января 2012

У меня есть лист Excel, и у каждого столбца в листе Excel есть разные типы данных.Один столбец в листе Excel имеет значения, такие как

**Column name**
6%
10%
15%
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
<blankvalue>
FZDxxxCV
01
FZDLKMCV
FZDLKMCV
FZDLKMCV
FZDLKMCV

Примечание: «» - это пустая ячейка в Excel.теперь при импорте Excel эти значения столбцов становятся пустыми, за исключением первых 3 значений, которые преобразуются в десятичные как 0,06, 0,10, 0,15.Тип первых 3-х ячеек в Excel - «Процент», тогда как тип других ячеек - «Общий».Я также попытался изменить свойства строки подключения, которые по-прежнему бесполезны.Есть предложения?

1 Ответ

1 голос
/ 23 января 2012

Это классическая проблема при импорте данных из Excel. Ваш провайдер ADO угадывает тип данных на основе первых нескольких строк, а все, что не соответствует этому первоначальному предположению, отбрасывается.

В вашем случае он предполагает, что столбец числовой на основе ранних строк, затем отбрасывает значения FZDLKMCV.

Это большая боль, и есть разные решения. В StackOverflow есть много вопросов по этому вопросу. Попробуйте эти ссылки:

Доступ к электронной таблице Excel с помощью C # иногда возвращает пустое значение для некоторых ячеек
Справка по строке подключения OleDB для файлов Excel
OleDB и смешанные типы данных Excel: отсутствующие данные

...