private static void AddDifferentialFormat(DifferentialFormats differentialFormats, IXLConditionalFormat cf,
            SaveContext context)
        {
            var differentialFormat = new DifferentialFormat();
            differentialFormat.Append(GetNewFont(new FontInfo {Font = cf.Style.Font as XLFont}, false));
            if (!XLHelper.IsNullOrWhiteSpace(cf.Style.NumberFormat.Format))
            {
                var numberFormat = new NumberingFormat
                {
                    NumberFormatId = (UInt32)(differentialFormats.Count() + 164),
                    FormatCode = cf.Style.NumberFormat.Format
                };
                differentialFormat.Append(numberFormat);
            }
            differentialFormat.Append(GetNewFill(new FillInfo {Fill = cf.Style.Fill as XLFill}, false));
            differentialFormat.Append(GetNewBorder(new BorderInfo {Border = cf.Style.Border as XLBorder}, false));

            differentialFormats.Append(differentialFormat);

            context.DifferentialFormats.Add(cf.Style, differentialFormats.Count() - 1);
        }
Exemple #2
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            var colorScale = new ColorScale();

            for (Int32 i = 1; i <= cf.ContentTypes.Count; i++)
            {
                var type = cf.ContentTypes[i].ToOpenXml();
                var val  = (cf.Values.ContainsKey(i) && cf.Values[i] != null) ? cf.Values[i].Value : null;

                var conditionalFormatValueObject = new ConditionalFormatValueObject {
                    Type = type
                };
                if (val != null)
                {
                    conditionalFormatValueObject.Val = val;
                }

                colorScale.Append(conditionalFormatValueObject);
            }

            for (Int32 i = 1; i <= cf.Colors.Count; i++)
            {
                Color color = new Color {
                    Rgb = cf.Colors[i].Color.ToHex()
                };
                colorScale.Append(color);
            }

            conditionalFormattingRule.Append(colorScale);

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule {
                Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            var colorScale = new ColorScale();

            for (Int32 i = 1; i <= cf.Values.Count; i++)
            {
                var conditionalFormatValueObject = new ConditionalFormatValueObject {
                    Type = cf.ContentTypes[i].ToOpenXml(), Val = cf.Values[i].Value
                };
                colorScale.Append(conditionalFormatValueObject);
            }

            for (Int32 i = 1; i <= cf.Values.Count; i++)
            {
                Color color = new Color {
                    Rgb = cf.Colors[i].Color.ToHex()
                };
                colorScale.Append(color);
            }

            conditionalFormattingRule.Append(colorScale);

            return(conditionalFormattingRule);
        }
Exemple #4
0
        internal static void CopyRelative(this IXLConditionalFormat format, IXLRangeBase fromRange, IXLRangeBase toRange, bool expand)
        {
            var frmtRng = format.Range.Relative(fromRange, toRange);

            if (expand && toRange.RangeAddress.RowCount() != format.Range.RowCount())
            {
                frmtRng = frmtRng.Offset(0, 0, toRange.RangeAddress.RowCount(), frmtRng.ColumnCount()).Unsubscribed();
            }
            var newFrmt = frmtRng.AddConditionalFormat();

            newFrmt.CopyFrom(format);

            var source = format.Range.FirstCell();
            var target = frmtRng.FirstCell();

            foreach (var v in newFrmt.Values.ToList())
            {
                var f = v.Value.Value;
                if (v.Value.IsFormula)
                {
                    var r1c1 = source.GetFormulaR1C1(f);
                    f = target.GetFormulaA1(r1c1);
                }

                newFrmt.Values[v.Key] = new XLFormula((v.Value.IsFormula ? "=" : "") + f);
            }
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            conditionalFormattingRule.FormatId = (uint)context.DifferentialFormats[cf.Style];
            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = GetQuoted(cf.Values[1]);

            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);
            var cfStyle = (cf.Style as XLStyle).Value;

            if (!cfStyle.Equals(XLWorkbook.DefaultStyleValue))
            {
                conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cfStyle.Key];
            }

            conditionalFormattingRule.Operator = cf.Operator.ToOpenXml();

            var formula = new Formula(val);

            conditionalFormattingRule.Append(formula);

            if (cf.Operator == XLCFOperator.Between || cf.Operator == XLCFOperator.NotBetween)
            {
                var formula2 = new Formula {
                    Text = GetQuoted(cf.Values[2])
                };
                conditionalFormattingRule.Append(formula2);
            }

            return(conditionalFormattingRule);
        }
Exemple #7
0
        public static void CopyFrom(this IXLConditionalFormat targetFormat, IXLConditionalFormat srcFormat)
        {
            var type   = targetFormat.GetType();
            var method = type.GetMethod("CopyFrom", BindingFlags.Instance | BindingFlags.Public);

            method.Invoke(targetFormat, new object[] { srcFormat });
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = GetQuoted(cf.Values[1]);


            var conditionalFormattingRule = new ConditionalFormattingRule {
                FormatId = (UInt32)context.DifferentialFormats[cf.Style], Operator = cf.Operator.ToOpenXml(), Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            var formula = new Formula();

            if (cf.Operator == XLCFOperator.Equal || cf.Operator == XLCFOperator.NotEqual)
            {
                formula.Text = val;
            }
            else
            {
                formula.Text = val;
            }
            conditionalFormattingRule.Append(formula);

            if (cf.Operator == XLCFOperator.Between || cf.Operator == XLCFOperator.NotBetween)
            {
                var formula2 = new Formula {
                    Text = GetQuoted(cf.Values[2])
                };
                conditionalFormattingRule.Append(formula2);
            }

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule {
                FormatId = (UInt32)context.DifferentialFormats[cf.Style], Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            return(conditionalFormattingRule);
        }
 private static void Merge(IXLConditionalFormat format, IXLConditionalFormat item)
 {
     foreach (var v in format.Values.ToList())
     {
         format.Values[v.Key] = item.Values[v.Key];
     }
     format.Range.RangeAddress.FirstAddress = item.Range.RangeAddress.FirstAddress;
 }
Exemple #11
0
        public static ConditionalFormattingRule Convert(IXLConditionalFormat conditionalFormat, Int32 priority, XLWorkbook.SaveContext context)
        {
            if (!Converters.TryGetValue(conditionalFormat.ConditionalFormatType, out var converter))
            {
                throw new NotImplementedException(string.Format("Conditional formatting rule '{0}' hasn't been implemented", conditionalFormat.ConditionalFormatType));
            }

            return(converter.Convert(conditionalFormat, priority, context));
        }
Exemple #12
0
 public static ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority)
 {
     return(new ConditionalFormattingRule
     {
         Type = cf.ConditionalFormatType.ToOpenXml(),
         Priority = priority,
         StopIfTrue = OpenXmlHelper.GetBooleanValue(cf.StopIfTrue, false)
     });
 }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            UInt32 val = UInt32.Parse(cf.Values[1].Value);
            var    conditionalFormattingRule = new ConditionalFormattingRule {
                FormatId = (UInt32)context.DifferentialFormats[cf.Style], Percent = cf.Percent, Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority, Rank = val, Bottom = cf.Bottom
            };

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule { FormatId = (UInt32)context.DifferentialFormats[cf.Style], Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var formula = new Formula { Text = "NOT(ISERROR(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "))" };

            conditionalFormattingRule.Append(formula);

            return conditionalFormattingRule;
        }
        public static ConditionalFormattingRule Convert(IXLConditionalFormat conditionalFormat, Int32 priority, XLWorkbook.SaveContext context)
        {
            var converter = Converters[conditionalFormat.ConditionalFormatType];

            if (converter == null)
            {
                throw new NotImplementedException(string.Format("Conditional formatting rule '{0}' hasn't been implemented", conditionalFormat.ConditionalFormatType));
            }

            return(converter.Convert(conditionalFormat, priority, context));
        }
Exemple #16
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            if (!cf.Style.Equals(XLWorkbook.DefaultStyle))
            {
                conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];
            }

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = cf.Values[1].Value;
            var conditionalFormattingRule = new ConditionalFormattingRule { FormatId = (UInt32)context.DifferentialFormats[cf.Style], Operator = cf.Operator.ToOpenXml(), Text = val, Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var formula = new Formula { Text = "RIGHT(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "," + val.Length.ToString() + ")=\"" + val + "\"" };

            conditionalFormattingRule.Append(formula);

            return conditionalFormattingRule;
        }
Exemple #18
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            UInt32 val = UInt32.Parse(cf.Values[1].Value);
            var    conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];
            conditionalFormattingRule.Percent  = cf.Percent;
            conditionalFormattingRule.Rank     = val;
            conditionalFormattingRule.Bottom   = cf.Bottom;
            return(conditionalFormattingRule);
        }
Exemple #19
0
        internal static void CopyRelative(this IXLConditionalFormat format, IXLRangeBase fromRange, IXLRangeBase toRange, bool expand)
        {
            var frmtRng = Intersection(format.Range, fromRange).Relative(fromRange, toRange);

            if (expand && toRange.RangeAddress.RowCount() != format.Range.RowCount())
            {
                frmtRng = frmtRng.Offset(0, 0, toRange.RangeAddress.RowCount(), frmtRng.ColumnCount()).Unsubscribed();
            }
            var newFrmt = frmtRng.AddConditionalFormat();

            newFrmt.CopyFrom(format);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule {
                Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            var dataBar = new DataBar {
                ShowValue = !cf.ShowBarOnly
            };
            var conditionalFormatValueObject1 = new ConditionalFormatValueObject {
                Type = cf.ContentTypes[1].ToOpenXml()
            };

            if (cf.Values.Any() && cf.Values[1]?.Value != null)
            {
                conditionalFormatValueObject1.Val = cf.Values[1].Value;
            }

            var conditionalFormatValueObject2 = new ConditionalFormatValueObject {
                Type = cf.ContentTypes[2].ToOpenXml()
            };

            if (cf.Values.Count >= 2 && cf.Values[2]?.Value != null)
            {
                conditionalFormatValueObject2.Val = cf.Values[2].Value;
            }

            var color = new Color();

            switch (cf.Colors[1].ColorType)
            {
            case XLColorType.Color:
                color.Rgb = cf.Colors[1].Color.ToHex();
                break;

            case XLColorType.Theme:
                color.Theme = System.Convert.ToUInt32(cf.Colors[1].ThemeColor);
                break;

            case XLColorType.Indexed:
                color.Indexed = System.Convert.ToUInt32(cf.Colors[1].Indexed);
                break;
            }

            dataBar.Append(conditionalFormatValueObject1);
            dataBar.Append(conditionalFormatValueObject2);
            dataBar.Append(color);

            conditionalFormattingRule.Append(dataBar);

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];

            var formula = new Formula {
                Text = "LEN(TRIM(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "))>0"
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule {
                FormatId = (UInt32)context.DifferentialFormats[cf.Style], Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            var formula = new Formula {
                Text = "NOT(ISERROR(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "))"
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
Exemple #23
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = cf.Values[1].Value;
            var    conditionalFormattingRule = new ConditionalFormattingRule {
                FormatId = (UInt32)context.DifferentialFormats[cf.Style], Operator = ConditionalFormattingOperatorValues.EndsWith, Text = val, Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority
            };

            var formula = new Formula {
                Text = "RIGHT(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "," + val.Length.ToString() + ")=\"" + val + "\""
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule { Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var iconSet = new IconSet {ShowValue = !cf.ShowIconOnly, Reverse = cf.ReverseIconOrder, IconSetValue = cf.IconSetStyle.ToOpenXml()};
            Int32 count = cf.Values.Count;
            for(Int32 i=1;i<= count; i++ )
            {
                var conditionalFormatValueObject = new ConditionalFormatValueObject { Type = cf.ContentTypes[i].ToOpenXml(), Val = cf.Values[i].Value, GreaterThanOrEqual = cf.IconSetOperators[i] == XLCFIconSetOperator.EqualOrGreaterThan};    
                iconSet.Append(conditionalFormatValueObject);
                
            }
            conditionalFormattingRule.Append(iconSet);
            return conditionalFormattingRule;
        }
Exemple #25
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            var colorScale = new ColorScale();

            for (Int32 i = 1; i <= cf.ContentTypes.Count; i++)
            {
                var type = cf.ContentTypes[i].ToOpenXml();
                var val  = cf.Values.TryGetValue(i, out XLFormula formula) ? formula?.Value : null;

                var conditionalFormatValueObject = new ConditionalFormatValueObject {
                    Type = type
                };
                if (val != null)
                {
                    conditionalFormatValueObject.Val = val;
                }

                colorScale.Append(conditionalFormatValueObject);
            }

            for (Int32 i = 1; i <= cf.Colors.Count; i++)
            {
                var xlColor = cf.Colors[i];
                var color   = new Color();
                switch (xlColor.ColorType)
                {
                case XLColorType.Color:
                    color.Rgb = xlColor.Color.ToHex();
                    break;

                case XLColorType.Theme:
                    color.Theme = System.Convert.ToUInt32(xlColor.ThemeColor);
                    break;

                case XLColorType.Indexed:
                    color.Indexed = System.Convert.ToUInt32(xlColor.Indexed);
                    break;
                }

                colorScale.Append(color);
            }

            conditionalFormattingRule.Append(colorScale);

            return(conditionalFormattingRule);
        }
        private ConditionalFormattingRuleExtension BuildRuleExtension(IXLConditionalFormat cf)
        {
            var conditionalFormattingRuleExtension = new ConditionalFormattingRuleExtension {
                Uri = "{B025F937-C7B1-47D3-B67F-A62EFF666E3E}"
            };

            conditionalFormattingRuleExtension.AddNamespaceDeclaration("x14", "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main");
            var id = new DocumentFormat.OpenXml.Office2010.Excel.Id
            {
                Text = (cf as XLConditionalFormat).Id.WrapInBraces()
            };

            conditionalFormattingRuleExtension.Append(id);

            return(conditionalFormattingRuleExtension);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            UInt32 val = UInt32.Parse(cf.Values[1].Value);
            var    conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);
            var    cfStyle = (cf.Style as XLStyle).Value;

            if (!cfStyle.Equals(XLWorkbook.DefaultStyleValue))
            {
                conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cfStyle.Key];
            }

            conditionalFormattingRule.Percent = cf.Percent;
            conditionalFormattingRule.Rank    = val;
            conditionalFormattingRule.Bottom  = cf.Bottom;
            return(conditionalFormattingRule);
        }
Exemple #28
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            if (!cf.Style.Equals(XLWorkbook.DefaultStyle))
            {
                conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];
            }

            var formula = new Formula {
                Text = "NOT(ISERROR(" + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + "))"
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
Exemple #29
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = cf.Values[1].Value;
            var    conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];
            conditionalFormattingRule.Operator = ConditionalFormattingOperatorValues.ContainsText;
            conditionalFormattingRule.Text     = val;

            var formula = new Formula {
                Text = "NOT(ISERROR(SEARCH(\"" + val + "\"," + cf.Range.RangeAddress.FirstAddress.ToStringRelative(false) + ")))"
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
Exemple #30
0
        internal static void CopyRelative(this IXLConditionalFormat format, IXLRangeBase fromRange, IXLRangeBase toRange, bool expand)
        {
            foreach (var sourceFmtRange in format.Ranges)
            {
                var frmtRng = Intersection(sourceFmtRange, fromRange)
                              .Relative(fromRange, toRange)
                              as IXLRange;
                if (expand &&
                    frmtRng.RangeAddress.RowCount() == fromRange.RangeAddress.RowCount() &&
                    frmtRng.RangeAddress.RowCount() != toRange.RangeAddress.RowCount())
                {
                    frmtRng = frmtRng.Offset(0, 0, toRange.RangeAddress.RowCount(), frmtRng.ColumnCount());
                }

                var newFrmt = frmtRng.AddConditionalFormat();
                newFrmt.CopyFrom(format);
            }
        }
Exemple #31
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            var iconSet = new IconSet {
                ShowValue = !cf.ShowIconOnly, Reverse = cf.ReverseIconOrder, IconSetValue = cf.IconSetStyle.ToOpenXml()
            };
            Int32 count = cf.Values.Count;

            for (Int32 i = 1; i <= count; i++)
            {
                var conditionalFormatValueObject = new ConditionalFormatValueObject {
                    Type = cf.ContentTypes[i].ToOpenXml(), Val = cf.Values[i].Value, GreaterThanOrEqual = cf.IconSetOperators[i] == XLCFIconSetOperator.EqualOrGreaterThan
                };
                iconSet.Append(conditionalFormatValueObject);
            }
            conditionalFormattingRule.Append(iconSet);
            return(conditionalFormattingRule);
        }
        private ConditionalFormatValueObject GetConditionalFormatValueObjectByIndex(IXLConditionalFormat cf, int index, ConditionalFormatValueObjectValues defaultType)
        {
            var conditionalFormatValueObject = new ConditionalFormatValueObject();

            if (cf.ContentTypes.TryGetValue(index, out var contentType))
            {
                conditionalFormatValueObject.Type = contentType.ToOpenXml();
            }
            else
            {
                conditionalFormatValueObject.Type = defaultType;
            }

            if (cf.Values.TryGetValue(index, out var value1) && value1?.Value != null)
            {
                conditionalFormatValueObject.Val = value1.Value;
            }

            return(conditionalFormatValueObject);
        }
Exemple #33
0
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = XLCFBaseConverter.Convert(cf, priority);

            if (!cf.Style.Equals(XLWorkbook.DefaultStyle))
            {
                conditionalFormattingRule.FormatId = (UInt32)context.DifferentialFormats[cf.Style];
            }

            conditionalFormattingRule.TimePeriod = cf.TimePeriod.ToOpenXml();

            var address = cf.Range.RangeAddress.FirstAddress.ToStringRelative(false);
            var formula = new Formula {
                Text = String.Format(formulaTemplates[cf.TimePeriod], address)
            };

            conditionalFormattingRule.Append(formula);

            return(conditionalFormattingRule);
        }
        public void CopyFrom(IXLConditionalFormat other)
        {
            Style = other.Style;
            ConditionalFormatType = other.ConditionalFormatType;
            TimePeriod            = other.TimePeriod;
            IconSetStyle          = other.IconSetStyle;
            Operator         = other.Operator;
            Bottom           = other.Bottom;
            Percent          = other.Percent;
            ReverseIconOrder = other.ReverseIconOrder;
            ShowIconOnly     = other.ShowIconOnly;
            ShowBarOnly      = other.ShowBarOnly;

            Values.Clear();
            other.Values.ForEach(kp => Values.Add(kp.Key, new XLFormula(kp.Value)));
            //CopyDictionary(Values, other.Values);
            CopyDictionary(Colors, other.Colors);
            CopyDictionary(ContentTypes, other.ContentTypes);
            CopyDictionary(IconSetOperators, other.IconSetOperators);
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
        {
            String val = GetQuoted(cf.Values[1]);

            var conditionalFormattingRule = new ConditionalFormattingRule { FormatId = (UInt32)context.DifferentialFormats[cf.Style], Operator = cf.Operator.ToOpenXml(), Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var formula = new Formula();
            if (cf.Operator == XLCFOperator.Equal || cf.Operator == XLCFOperator.NotEqual)
                formula.Text = val;
            else
                formula.Text = val;
            conditionalFormattingRule.Append(formula);

            if(cf.Operator == XLCFOperator.Between || cf.Operator == XLCFOperator.NotBetween)
            {
                var formula2 = new Formula { Text = GetQuoted(cf.Values[2]) };
                conditionalFormattingRule.Append(formula2);
            }

            return conditionalFormattingRule;
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule { Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var colorScale = new ColorScale();
            for(Int32 i = 1; i <= cf.Values.Count; i++)
            {
                var conditionalFormatValueObject = new ConditionalFormatValueObject { Type = cf.ContentTypes[i].ToOpenXml(), Val = cf.Values[i].Value };
                colorScale.Append(conditionalFormatValueObject);
            }

            for (Int32 i = 1; i <= cf.Values.Count; i++)
            {
                Color color = new Color { Rgb = cf.Colors[i].Color.ToHex() };
                colorScale.Append(color);
            }

            conditionalFormattingRule.Append(colorScale);

            return conditionalFormattingRule;
        }
        public ConditionalFormattingRule Convert(IXLConditionalFormat cf, Int32 priority, XLWorkbook.SaveContext context)
        {
            var conditionalFormattingRule = new ConditionalFormattingRule { Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };

            var dataBar = new DataBar {ShowValue = !cf.ShowBarOnly};
            var conditionalFormatValueObject1 = new ConditionalFormatValueObject { Type = cf.ContentTypes[1].ToOpenXml()};
            if (cf.Values.Count >= 1) conditionalFormatValueObject1.Val = cf.Values[1].Value;

            var conditionalFormatValueObject2 = new ConditionalFormatValueObject { Type = cf.ContentTypes[2].ToOpenXml()};
            if (cf.Values.Count >= 2) conditionalFormatValueObject2.Val = cf.Values[2].Value;

            var color = new Color { Rgb = cf.Colors[1].Color.ToHex() };

            dataBar.Append(conditionalFormatValueObject1);
            dataBar.Append(conditionalFormatValueObject2);
            dataBar.Append(color);

            conditionalFormattingRule.Append(dataBar);

            return conditionalFormattingRule;
        }
 public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
 {
     var conditionalFormattingRule = new ConditionalFormattingRule { FormatId = (UInt32)context.DifferentialFormats[cf.Style], Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority };
     return conditionalFormattingRule;
 }
 public ConditionalFormattingRule Convert(IXLConditionalFormat cf, int priority, XLWorkbook.SaveContext context)
 {
     UInt32 val = UInt32.Parse(cf.Values[1].Value);
     var conditionalFormattingRule = new ConditionalFormattingRule { FormatId = (UInt32)context.DifferentialFormats[cf.Style], Percent = cf.Percent, Type = cf.ConditionalFormatType.ToOpenXml(), Priority = priority, Rank = val, Bottom = cf.Bottom};
     return conditionalFormattingRule;
 }
 public void Add(IXLConditionalFormat conditionalFormat)
 {
     _conditionalFormats.Add(conditionalFormat);
 }
 public static ConditionalFormattingRule Convert(IXLConditionalFormat conditionalFormat, Int32 priority, XLWorkbook.SaveContext context)
 {
     return Converters[conditionalFormat.ConditionalFormatType].Convert(conditionalFormat, priority, context);
 }