Lectura de fechas de archivos OpenXml Excel

Estoy tratando de leer datos de los archivos .xlsx usando SharpZipLib para descomprimirlos (en la memoria) y leer los archivos xml internos. Todo está bien, pero reconoce las fechas: se almacenan en formato julean y necesito reconocer de alguna manera si un número es una fecha o solo un número. En otro tema (desafortunadamente murió y necesito una respuesta rápida), supe algunas cosas de Mark Baker, pero aún no es suficiente ...

"Excel almacena las fechas como un valor flotante ... la parte entera es el número de días desde el 1/1/1900 (o 1/1/1904 dependiendo del calendario que se esté usando), siendo la parte fraccional la proporción de un día (es decir, la parte del tiempo) ... un poco más incómodo por el hecho de que 1900 se considera un año bisiesto.

Lo único que diferencia los datos de un número es la máscara de formato de número. Si puede leer la máscara de formato, puede usarla para identificar el valor como una fecha en lugar de un número ... luego calcule el valor / formato de la fecha a partir de la fecha base ".

"¿Pero el atributo" s "para las fechas siempre tiene el valor de" 1 "? Sé que define el estilo, pero ¿quizás?;)"

El atributo s hace referencia a una entrada de estilo xf en styles.xml, y no siempre será la entrada 1 para las fechas ... todo depende de cuántos estilos diferentes se estén utilizando en el libro. El estilo xf a su vez hace referencia a una máscara de formato de número. Para identificar una celda que contiene una fecha, debe realizar el estilo xf -> búsqueda de formato de número, luego identificar si esa máscara de formato de número es una máscara de formato de fecha / hora (en lugar de, por ejemplo, un porcentaje o una máscara de formato de número contable)

"Una pregunta más: ahora estoy mirando el contenido de style.xml y en la sección veo elementos como:" <xf numFmtId = "14" ... applyNumberFormat = "1" /> "," <xf numFmtId = "1" ... applyNumberFormat = "1" /> ", etc. pero no hay una sección <numFmts> ... ¿Hay algún formato" estándar "? ¿O solo me falta algo?"

¿Puede alguien ayudarme? Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta