Excel C # COM-аддон, возвращающий массив с датами и парными разрядами

Мой аддон C # Excel преобразует временные ряды в другие временные ряды.

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

Хотя мой код C # возвращает DateTime для даты, Excel преобразует его в дату Excel, представленную целым числом, а отображаемое значение представляет собой целое число, например 39000, а не формат даты, например, 14/12/2012.

Таким образом, пользователь должен нажать CTRL + #, чтобы включить его в даты.

Есть ли способ каким-то образом вернуть результат добавления C # excel уже Excel, отформатированного как Date?

a) Отформатируйте ячейки из кода, который возвращает значения. Например, если у вас есть дескриптор объекта диапазона, вы можете сделать что-то вроде range.NumberFormat="yyyy-mm-dd" .

b) Предварительно отформатируйте ячейки до формата даты перед запуском кода, который импортирует данные. Это будет работать, если один и тот же лист будет использоваться каждый раз, а не пустой или произвольный лист.

c) Это уродливый взлом, но попробуйте вернуть ваши значения даты в виде строк, отформатированных как «мм / дд / гггг». Это вынуждает Excel интерпретировать значения как даты. AFAIK настройки языка машины не повлияют на перевод в этом случае.

Чтобы дополнить Адама c) ответьте:
Если у вас есть переменная Date / Time и возвращает ее в ячейку из Sub с использованием Range.Value, она будет форматировать ячейку в качестве даты (проверена с использованием VBA, а не C #: не уверен, что .Value доступен с помощью interop?)
Если вы используете Range.Value2, он НЕ будет форматировать ячейку в качестве даты.
Если вы попытаетесь сделать это из UDF, UDF НЕ изменяет форматирование ячейки.

  • C # и Excel interop
  • Как заставить Excel игнорировать апостроф в начале ячейки
  • Изменение обратного цвета ячейки Excel с использованием шестнадцатеричного результата в Excel, отображающем совершенно другой цвет в электронной таблице
  • Как автоматически сортировать столбцы через объекты взаимодействия Excel в AX 2012?
  • Очистка приложений Rogue Excel
  • Excel Interop - Тип не зарегистрирован
  • публикация excel interop на сервере не работает
  • Не удалось установить свойство Hidden класса Range c # excel interop
  • Откройте файл excel через API-интерфейс Com-interop C # на microsoft HPC
  • Преобразование xls или xlsx файла с несколькими листами в один файл csv с использованием interop
  • Подсчет строк фильтрованного excel Range в C #
  • Давайте будем гением компьютера.