Lendo datas dos arquivos do Excel OpenXml

Estou tentando ler dados dos arquivos .xlsx usando o SharpZipLib para descompactá-lo (na memória) e lendo os arquivos xml internos. Está tudo bem, mas reconhecendo as datas - elas são armazenadas no formato juliano e eu preciso reconhecer de alguma forma se um número é uma data ou apenas um número. Em outro tópico (infelizmente morreu e preciso de uma resposta rápida), conheci algumas coisas de Mark Baker, mas ainda não é suficiente ...

"O Excel armazena datas como um valor flutuante ... sendo a parte inteira o número de dias desde 1/1/1900 (ou 1/1/1904, dependendo do calendário em uso), a parte fracionária sendo a proporção de um dia (isto é, a parte do tempo) ... ficou um pouco mais estranha pelo fato de 1900 ser considerado um ano bissexto.

A única coisa que diferencia um dado de um número é a máscara de formato numérico. Se você pode ler a máscara de formato, pode usá-lo para identificar o valor como uma data em vez de um número ... e calcule o valor / formatação da data a partir da data base. "

"Mas o atributo" s "para datas sempre tem o valor de" 1 "? Sei que define estilo, mas talvez?;)"

O atributo s faz referência a uma entrada de estilo xf em styles.xml e nem sempre será a entrada 1 para datas ... tudo depende de quantos estilos diferentes estão sendo usados na pasta de trabalho. O estilo xf, por sua vez, faz referência a uma máscara de formato numérico. Para identificar uma célula que contém uma data, é necessário executar o estilo xf -> pesquisa de formato numérico e identificar se essa máscara de formato numérico é uma máscara de formato numérico de data / hora (em vez de, por exemplo, uma máscara de formato numérico de porcentagem ou contabilidade)

"Mais uma pergunta - agora estou analisando o conteúdo do style.xml e na seção vejo elementos como:" <xf numFmtId = "14" ... applyNumberFormat = "1" /> "," <xf numFmtId = "1" ... applyNumberFormat = "1" /> ", etc., mas não há seção <numFmts> ... Existem formatos" padrão "? Ou estou faltando alguma coisa?"

Alguém por favor pode me ajudar? Desde já, obrigado.

questionAnswers(4)

yourAnswerToTheQuestion