ExcelDNA передает значение ячейки excel, отображая неожиданный вывод

Я использую функцию публичного статического объекта getContent (ключевое слово String, объект StartTime, объект EndTime) { alert (StartTime); }

установите в ячейке A1 значение 18-07-2012. И при вызове =getContent("africa",A1,"04-09-2012") отображается 41108.что это значит?Почему это не принимает значение в A1!!!


person user1618820    schedule 28.09.2012    source источник


Ответы (1)


Excel не имеет встроенного типа данных даты/времени. В Excel дата/время являются параметрами форматирования для типа данных double. Вы можете объявить функцию Excel-DNA как принимающую параметр DateTime, чтобы переданные двойники автоматически преобразовывались в DateTime, или вы можете выполнить преобразование самостоятельно, используя DateTime.FromOADate() (поскольку двойное кодирование Excel соответствует реализации даты COM/OLE).

person Govert    schedule 28.09.2012
comment
Спасибо за помощь. Я попробовал DateTime.FronOADate(), но получил тот же результат, что и 41108. К сожалению, мне нужно использовать объектный тип данных, потому что иногда он должен принимать строковое значение, а не TODAY(). Есть ли способ добиться этого? - person user1618820; 28.09.2012
comment
Если вы вызываете DateTime.FromOAData(41108), вы получаете DateTime (2012/07/18 00:00:00). Если вы вернете это значение в Excel и отформатируете ячейку как дату/время, Excel отобразит соответствующую дату. - person Govert; 28.09.2012