internal SLConditionalFormattingRule2010 ToSLConditionalFormattingRule2010()
        {
            var cfr2010 = new SLConditionalFormattingRule2010();

            cfr2010.Type              = Type;
            cfr2010.Priority          = Priority;
            cfr2010.StopIfTrue        = StopIfTrue;
            cfr2010.AboveAverage      = AboveAverage;
            cfr2010.Percent           = Percent;
            cfr2010.Bottom            = Bottom;
            cfr2010.HasOperator       = HasOperator;
            cfr2010.Operator          = Operator;
            cfr2010.Text              = Text;
            cfr2010.HasTimePeriod     = HasTimePeriod;
            cfr2010.TimePeriod        = TimePeriod;
            cfr2010.Rank              = Rank;
            cfr2010.StandardDeviation = StdDev;
            cfr2010.EqualAverage      = EqualAverage;

            foreach (var f in Formulas)
            {
                cfr2010.Formulas.Add(new DocumentFormat.OpenXml.Office.Excel.Formula(f.Text));
            }
            cfr2010.HasColorScale = HasColorScale;
            cfr2010.ColorScale    = ColorScale.ToSLColorScale2010();
            cfr2010.HasDataBar    = HasDataBar;
            cfr2010.DataBar       = DataBar.ToDataBar2010();
            cfr2010.HasIconSet    = HasIconSet;
            cfr2010.IconSet       = IconSet.ToSLIconSet2010();

            cfr2010.HasDifferentialType = HasDifferentialFormat;
            cfr2010.DifferentialType    = DifferentialFormat.Clone();

            return(cfr2010);
        }
        internal SLConditionalFormattingRule Clone()
        {
            var cfr = new SLConditionalFormattingRule();

            cfr.Formulas = new List <Formula>();
            for (var i = 0; i < Formulas.Count; ++i)
            {
                cfr.Formulas.Add((Formula)Formulas[i].CloneNode(true));
            }

            cfr.HasColorScale = HasColorScale;
            cfr.ColorScale    = ColorScale.Clone();
            cfr.HasDataBar    = HasDataBar;
            cfr.DataBar       = DataBar.Clone();
            cfr.HasIconSet    = HasIconSet;
            cfr.IconSet       = IconSet.Clone();

            cfr.Extensions = new List <ConditionalFormattingRuleExtension>();
            for (var i = 0; i < Extensions.Count; ++i)
            {
                cfr.Extensions.Add((ConditionalFormattingRuleExtension)Extensions[i].CloneNode(true));
            }

            cfr.Type     = Type;
            cfr.FormatId = FormatId;
            cfr.HasDifferentialFormat = HasDifferentialFormat;
            cfr.DifferentialFormat    = DifferentialFormat.Clone();

            cfr.Priority     = Priority;
            cfr.StopIfTrue   = StopIfTrue;
            cfr.AboveAverage = AboveAverage;
            cfr.Percent      = Percent;
            cfr.Bottom       = Bottom;

            cfr.HasOperator   = HasOperator;
            cfr.Operator      = Operator;
            cfr.Text          = Text;
            cfr.HasTimePeriod = HasTimePeriod;
            cfr.TimePeriod    = TimePeriod;
            cfr.Rank          = Rank;
            cfr.StdDev        = StdDev;
            cfr.EqualAverage  = EqualAverage;

            return(cfr);
        }