Warum wird die Formatvorlage für die Zelle index Rückgabe falscher CellFormat-Wert beim Parsen von excel-Zellen, die mit OpenXml SDK?

Betrachten ein Allgemeines format Zelle mit einem Wert von 39.95. Wenn ich Holen die CellFormat der Zelle es gibt falsche Zelle-format-

CellFormat thisCellFormat = ((CellFormat)cellFmts.ChildElements[(int)thisCell.StyleIndex.Value]);
int fmtId = Convert.ToInt32(thisCellFormat.FormatId.Value);

Den Wert fmtId zurückgegeben wird 1, und in einigen Fällen 38, wo er sein sollte 2 oder 39.

Diese Frage ist nur für Allgemeine Zellen formatieren, erhalte ich die korrekte id für die Anzahl Zellen formatieren.

Unten ist die Standard ECMA-376 Office Open XML-Dateiformate angegebenen Satz der impliziten Zelle Formate für Referenz-

ID Format-Code
0 Allgemeines
1 0
2 0.00
3 #,##0
4 #,##0.00
9 0%
10 0.00%
11 0.00 E+00
12 # ?/?
13 # ??/??
14 mm-dd-yy
15 d-mmm-yy
16 d-mmm
17 mmm-yy
18 h:mm AM/PM
19 h:mm:ss AM/PM
20 h:mm
21 h:mm:ss
22 m/d/yy h:mm
37 #,##0 ;(#,##0)
38 #,##0 ;Rot
39 #,##0.00;(#,##0.00)
40 #,##0.00;Rot
45 mm:ss
46 [h]:mm:ss
47 mmss.0
48 ##0.0 E+0
49 @

verwenden des system-Separatoren . für dezimal und , für tausend.
Antwort auf die Frage kommt, wie Tabellenkalkulations-Stile werden angewendet, um Zellen
Die Tabelle wird erstellt mit Excel, nicht OpenXML SDK. Und ich habe versucht, mit sehr einfachen Tabellenkalkulation mit nur einer Zelle, der das Allgemeine format mit einer decimal-Wert. Gibt noch die falsche FormatID
Was ist der Wert von thisCellFormat.ApplyNumberFormat?

InformationsquelleAutor Thunderstruck | 2015-01-14

Schreibe einen Kommentar