#c# #excel #datetime #oracle11g
#c# #excel #дата и время #oracle11g
Вопрос:
Мне нужно экспортировать данные в Excel, но, к сожалению, из таблицы Oracle, где вставки происходят через веб-приложения. Конечные пользователи допускают множество опечаток (вероятно, плохой дизайн приложений), и наиболее распространенными ошибками являются неправильно введенные даты. Одним из них является «16.03.0219», который является действительной датой, поэтому вставка происходит, но дата, как вы видите, до 1900 года.
Когда я пытаюсь преобразовать эту дату, она терпит неудачу, используя все методы, с которыми я столкнулся (FromOADate, ToOADate, DateTime.Синтаксический анализ, преобразование.Текущее время и т. Д.).
Как я могу преобразовать это в дату, действительную для вставки в Excel?
Мое текущее преобразование выглядит следующим образом:
((DateTime)my_date).ToOADate().ToString(CultureInfo.InvariantCulture)
Это успешно преобразует все даты, пока не столкнется с ошибками этой даты. Заранее спасибо за помощь.
Комментарии:
1. «Когда я пытаюсь преобразовать эту дату, она завершается неудачей» — но
DateTime.Parse("16.03.0219")
не имеет проблем с анализом этой даты.2. Выполните поиск / замену в этом столбце для чего-либо меньшего, чем 1900, и замените на 1900…
3. @stuartd, я попробую это как можно скорее, пока не пробовал.
4. @stuartd, возможно, синтаксический анализ работает, но при попытке вставить это в Excel все еще возникает ошибка.
5. Если вы задаете для ячейки в Excel формат даты, вы также можете ввести «abc * без ошибок. Формат применяется только в том случае, если это допустимая дата. Но ни «abc», ни «16.03.0219» не являются допустимыми датами для Excel. Переход со строками для недопустимых дат — единственный вариант, который я вижу.