blob: e00114cd06cb1da6c0b4f25ee98bcab1cdadc4a9 [file] [log] [blame]
namespace OfficeOpenXml.Style.Dxf;
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,
};
}
}