Determinazione se una cella XLSX è formattata per la data per i fogli di calcolo di Excel 2007

StackOverflow https://stackoverflow.com/questions/4948998

  •  07-11-2019
  •  | 
  •  

Domanda

Sto lavorando con un codice che legge i dati dai file XLSX analizzando l'XML. È tutto piuttosto semplice, ad eccezione della cella di data.

Le date sono archiviate come numeri interi e hanno un attributo "S" che è un indice nel foglio di stile, che può essere utilizzato per ottenere una stringa di formattazione della data. Ecco alcuni esempi di una precedente domanda di StackOverflow collegata di seguito:

19 = 'H: mm: ss am/pm';

20 = 'H: mm';

21 = 'H: mm: ss';

22 = 'm/d/yy h: mm';

Queste sono le stringhe di formattazione delle date integrate dallo standard OOXML, tuttavia sembra che Excel tende a utilizzare stringhe formattate personalizzate anziché in costruzione. Ecco un formato di esempio di un foglio di calcolo di Excel 2007. Numfmtid maggiore di 164 è un formato personalizzato.

<numFmt formatCode="MM/DD/YY" numFmtId="165"/>

Determinare se una cella deve essere formattata come data è difficile perché l'unico indicatore che riesco a trovare è il codifica format. Questa è ovviamente una data, ma le cellule potrebbero essere formattate in qualsiasi numero di modi. Il mio tentativo iniziale è di cercare MS, DS e YS nel FormatCode, ma sembra problematico.

Qualcuno ha avuto fortuna con questo problema? Sembra che le librerie di lettura Excel standard mancano nel supporto XLSX in questo momento. Ho letto gli standard e ho scavato molti file XLSX senza molta fortuna.

Le migliori informazioni sembrano provenire da questa domanda di stackoverflow:

Ciò che indica una cella XML aperta di Office contiene un valore di tempo della data

Grazie!

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top