Exemple #1
0
        public CellValueConditionalFormattingRule DeepCloneWithOperator(ConditionalFormattingOperator @operator)
        {
            var result = new CellValueConditionalFormattingRule
            {
                Operator        = @operator,
                Operand1Formula = this.Operand1Formula?.DeepClone(),
                Operand2Formula = this.Operand2Formula?.DeepClone(),
                StopIfTrue      = this.StopIfTrue.DeepClone(),
                RangeStyle      = this.RangeStyle?.DeepClone(),
            };

            return(result);
        }
        /// <summary>
        /// Converts a <see cref="ConditionalFormattingOperator"/> to a <see cref="OperatorType"/>.
        /// </summary>
        /// <param name="conditionalFormattingOperator">The conditional formatting operator to convert.</param>
        /// <returns>
        /// A <see cref="OperatorType"/> converted from a <see cref="ConditionalFormattingOperator"/>.
        /// </returns>
        public static OperatorType ToOperatorType(
            this ConditionalFormattingOperator conditionalFormattingOperator)
        {
            switch (conditionalFormattingOperator)
            {
            case ConditionalFormattingOperator.Between:
                return(OperatorType.Between);

            case ConditionalFormattingOperator.EqualTo:
                return(OperatorType.Equal);

            case ConditionalFormattingOperator.GreaterThan:
                return(OperatorType.GreaterThan);

            case ConditionalFormattingOperator.GreaterThanOrEqualTo:
                return(OperatorType.GreaterOrEqual);

            case ConditionalFormattingOperator.LessThan:
                return(OperatorType.LessThan);

            case ConditionalFormattingOperator.LessThanOrEqualTo:
                return(OperatorType.LessOrEqual);

            case ConditionalFormattingOperator.None:
                return(OperatorType.None);

            case ConditionalFormattingOperator.NotBetween:
                return(OperatorType.NotBetween);

            case ConditionalFormattingOperator.NotEqualTo:
                return(OperatorType.NotEqual);

            default:
                throw new NotSupportedException(Invariant($"This {nameof(ConditionalFormattingOperator)} is not supported: {conditionalFormattingOperator}"));
            }
        }
        internal static void CreateCellValueConditionalFormatting(Worksheet worksheet, string range, SpreadsheetColor color, ConditionalFormattingOperator conditionalFormattingOperator, params double[] values)
        {
            var formatting = worksheet.ConditionalFormattings.Add(range);
            var rule       = new CellIsFormattingRule();

            rule.Fill     = CellFill.CreateSolidFill(color);
            rule.Operator = conditionalFormattingOperator;
            rule.Formula1 = values[0].ToString(CultureInfo.InvariantCulture);
            if (values.Length == 2)
            {
                rule.Formula2 = values[1].ToString(CultureInfo.InvariantCulture);
            }

            formatting.Rules.Add(rule);
        }