2017-02-21 75 views
0

Я написал процедуру импорта Excel для доступа в своем приложении. Таблицы Excel, которые я использую для импорта, - это все файлы, которые я создал, используя процедуру экспорта, которую я также написал.Excel для доступа к импорту через DataGridView, не отображающий все даты

При просмотре данных в DataGridView есть один столбец, в котором отображаются даты, показывающие значения NULL на 3 строках. Даты для этих трех строк одинаковы - 15/02/2017.

Я думал, что это было потому, что даты были NULL в электронной таблице, но их не было.

После некоторого расследования в самом Excel я заметил, что все остальные даты в столбце были установлены на «Дата», но эти 3 ячейки с проблематичной датой были установлены в «Общие».

Однако в моей программе экспорта я использую этот код, чтобы установить ячейки в этом столбце как даты, в формате dd/MM/yyyy.

Dim formatRange As Excel.Range 

formatRange = xlWorksheet.Range("C1", "C9999") 
formatRange.NumberFormat = "dd/MM/yyyy" 

formatRange = xlWorksheet.Range("D1", "D9999") 
formatRange.NumberFormat = "dd/MM/yyyy" 

Затем, в качестве эксперимента, я изменил тип проблемных клеток «Дата» и снова попробовал импорт - Но он все еще показывает NULL клетки.

Итак, полагаю, у меня есть 2 вопроса;

  • Почему экспорт не устанавливает эти ячейки в дату dd/MM/yyyy в первую очередь? Это связано со значениями?
  • Тогда почему отображаются как NULL даже после изменения типа «Дата» в Excel?

Это обычная проблема, или есть что-то, что я делаю неправильно?

+0

Форматирование ячеек Excel типа 'Date' довольно бессмысленно, поскольку вы все еще можете ввести то, что хотите. Поскольку кода нет, я бы более внимательно рассмотрел возможность плохой даты в Excel. dd/MM/yyyy могут смешиваться с мм/дд/гггг. Просто гадать. – JohnG

+0

@JohnG Я подумал, может ли это быть запутано с MM/dd/yyyy, однако столбец рядом с ним показывает 14/03/2017 отлично, так что вроде развенчали эту теорию – David

+0

Вы считали, что принимаете форматирование полностью отключено? Это должно отображать строку, если ее значение null, то это скорее всего не имеет ничего общего с датами. – JohnG

ответ

0

Ответ как @TnTinMn указал.

Установка Extended Properties на Extended Properties='Excel 12.0;IMEX=1;'; отображала даты проблем, которые по какой-то причине показывались как строки. Непонятно, почему, поскольку форматирование было таким же, как и у других, но проблема с несогласованными типами данных была решена с использованием этого небольшого изменения.