Удачи!

аюсь прочитать данные из файлов .xlsx, используя SharpZipLib для распаковки (в памяти) и чтения внутренних файлов XML. Все хорошо, но с распознаванием дат - они хранятся в юлианском формате, и мне нужно как-то распознать, является ли число датой или только числом. В другой теме (к сожалению, она умерла, и мне нужен быстрый ответ) Я кое-что узнал от Марка Бейкера, но этого все еще недостаточно ...

«Excel хранит даты в виде значения с плавающей запятой ... целочисленная часть - это количество дней с 01.01.1900 (или 01.01.1904 в зависимости от того, какой календарь используется), дробная часть - это доля дня (то есть временная часть) ... сделана немного более неловкой из-за того, что 1900 год считается високосным.

Единственное, что отличает данные от числа, это маска числового формата. Если вы можете прочитать маску формата, вы можете использовать ее для определения значения как даты, а не числа ... затем рассчитать значение даты / форматирование из базовой даты. "

«Но разве атрибут« s »для дат не всегда имеет значение« 1 »? Я знаю, что он определяет стиль, но, может быть,?)

Атрибут s ссылается на запись стиля xf в styles.xml, и это не всегда будет запись 1 для дат ... все зависит от того, сколько разных стилей используется в книге. Стиль xf, в свою очередь, ссылается на маску числового формата. Чтобы идентифицировать ячейку, содержащую дату, необходимо выполнить поиск в формате xf -> numberformat, а затем определить, является ли эта маска числового формата маской числового формата даты / времени (а не, например, в процентах или маске формата чисел учета)

"Еще один вопрос - я сейчас просматриваю содержимое style.xml и в разделе вижу такие элементы, как:" <xf numFmtId = "14" ... applyNumberFormat = "1" /> "," <xf numFmtId = "1" ... applyNumberFormat = "1" /> "и т. Д., Но нет раздела <numFmts> ... Существуют ли" стандартные "форматы? Или я что-то просто пропустил?"

Может кто-нибудь помочь мне? Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос