| namespace AppsheetEpplus; | |
| public class ExcelDxfNumberFormat : DxfStyleBase<ExcelDxfNumberFormat> { | |
| public ExcelDxfNumberFormat(ExcelStyles styles) | |
| : base(styles) {} | |
| private int _numFmtID = int.MinValue; | |
| /// <summary> | |
| /// Id for number format | |
| /// | |
| /// Build in ID's | |
| /// | |
| /// 0 General | |
| /// 1 0 | |
| /// 2 0.00 | |
| /// 3 #,##0 | |
| /// 4 #,##0.00 | |
| /// 9 0% | |
| /// 10 0.00% | |
| /// 11 0.00E+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 ;[Red](#,##0) | |
| /// 39 #,##0.00;(#,##0.00) | |
| /// 40 #,##0.00;[Red](#,##0.00) | |
| /// 45 mm:ss | |
| /// 46 [h]:mm:ss | |
| /// 47 mmss.0 | |
| /// 48 ##0.0E+0 | |
| /// 49 @ | |
| /// </summary> | |
| public int NumFmtID { | |
| get => _numFmtID; | |
| internal set => _numFmtID = value; | |
| } | |
| private string _format = ""; | |
| public string Format { | |
| get => _format; | |
| set { | |
| _format = value; | |
| NumFmtID = ExcelNumberFormat.GetFromBuildIdFromFormat(value); | |
| } | |
| } | |
| protected internal override string Id => Format; | |
| protected internal override void CreateNodes(XmlHelper helper, string path) { | |
| if (NumFmtID < 0 && !string.IsNullOrEmpty(Format)) { | |
| NumFmtID = _styles._nextDfxNumFmtID++; | |
| } | |
| helper.CreateNode(path); | |
| SetValue(helper, path + "/@numFmtId", NumFmtID); | |
| SetValue(helper, path + "/@formatCode", Format); | |
| } | |
| protected internal override bool HasValue => !string.IsNullOrEmpty(Format); | |
| protected internal override ExcelDxfNumberFormat Clone() { | |
| return new(_styles) { | |
| NumFmtID = NumFmtID, | |
| Format = Format, | |
| }; | |
| } | |
| } |