public ICellStyle Get(CustomCellStyle customCellStyle)
 {
     if (!_cache.ContainsKey(customCellStyle))
     {
         _cache[customCellStyle] = Create(customCellStyle);
     }
     return(_cache[customCellStyle]);
 }
        private ICellStyle Create(CustomCellStyle customCellStyle)
        {
            var cellStyle = _workbook.CreateCellStyle();

            switch (customCellStyle)
            {
            case (CustomCellStyle.Header):
                cellStyle.BorderBottom = BorderStyle.Thin;
                cellStyle.SetFont(HeaderFont);
                break;

            case (CustomCellStyle.DateTime):
                cellStyle.DataFormat = DateFormat;
                cellStyle.SetFont(DefaultFont);
                break;

            case (CustomCellStyle.DateTime_Note):
                cellStyle.DataFormat = DateFormat;
                ApplyConditionalStyle(ConditionalStyle.Note, cellStyle);
                cellStyle.SetFont(DefaultFont);
                break;

            case (CustomCellStyle.Double):
                cellStyle.DataFormat = DoubleFormat;
                cellStyle.SetFont(DefaultFont);
                break;

            case (CustomCellStyle.Double_Note):
                cellStyle.DataFormat = DoubleFormat;
                cellStyle.SetFont(DefaultFont);
                ApplyConditionalStyle(ConditionalStyle.Note, cellStyle);
                break;

            case (CustomCellStyle.Note):
                cellStyle.SetFont(DefaultFont);
                ApplyConditionalStyle(ConditionalStyle.Note, cellStyle);
                break;

            case (CustomCellStyle.LongString):
                cellStyle.SetFont(DefaultFont);
                cellStyle.WrapText = true;
                break;

            case (CustomCellStyle.LongString_Note):
                cellStyle.SetFont(DefaultFont);
                cellStyle.WrapText = true;
                ApplyConditionalStyle(ConditionalStyle.Note, cellStyle);
                break;

            case (CustomCellStyle.Default):
                cellStyle.SetFont(DefaultFont);
                break;
            }
            return(cellStyle);
        }
        public ICellStyle Get(CustomCellStyle rootCustomCellStyle, ConditionalStyle condStyle)
        {
            var s = rootCustomCellStyle.ToString();

            if (condStyle != ConditionalStyle.None)
            {
                s = string.Format("{0}_{1}", s, condStyle);
            }
            var customCellStyle = CustomCellStyle.Default;

            Enum.TryParse <CustomCellStyle>(s, out customCellStyle);
            return(Get(customCellStyle));
        }