using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace OfficeOpenXml.Style.Dxf { public class ExcelDxfNumberFormat : DxfStyleBase { public ExcelDxfNumberFormat(ExcelStyles styles) : base(styles) { } int _numFmtID=int.MinValue; /// /// 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 @ /// public int NumFmtID { get { return _numFmtID; } internal set { _numFmtID = value; } } string _format=""; public string Format { get { return _format; } set { _format = value; NumFmtID = ExcelNumberFormat.GetFromBuildIdFromFormat(value); } } protected internal override string Id { get { return 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 { get { return !string.IsNullOrEmpty(Format); } } protected internal override ExcelDxfNumberFormat Clone() { return new ExcelDxfNumberFormat(_styles) { NumFmtID = NumFmtID, Format = Format }; } } }