/* * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for Additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ==================================================================== */ namespace HH.WMS.Utils.NPOI.SS.UserModel { using System; using HH.WMS.Utils.NPOI.SS.Util; /** * The 'Conditional Formatting' facet of Sheet * * @author Dmitriy Kumshayev * @author Yegor Kozlov * @since 3.8 */ public interface ISheetConditionalFormatting { /** * Add a new Conditional Formatting to the sheet. * * @param regions - list of rectangular regions to apply conditional formatting rules * @param rule - the rule to apply * * @return index of the newly Created Conditional Formatting object */ int AddConditionalFormatting(CellRangeAddress[] regions, IConditionalFormattingRule rule); /** * Add a new Conditional Formatting consisting of two rules. * * @param regions - list of rectangular regions to apply conditional formatting rules * @param rule1 - the first rule * @param rule1 - the second rule * * @return index of the newly Created Conditional Formatting object */ int AddConditionalFormatting(CellRangeAddress[] regions, IConditionalFormattingRule rule1, IConditionalFormattingRule rule2); /** * Add a new Conditional Formatting Set to the sheet. * * @param regions - list of rectangular regions to apply conditional formatting rules * @param cfRules - Set of up to three conditional formatting rules * * @return index of the newly Created Conditional Formatting object */ int AddConditionalFormatting(CellRangeAddress[] regions, IConditionalFormattingRule[] cfRules); /** * Adds a copy of a ConditionalFormatting object to the sheet *

* This method could be used to copy ConditionalFormatting object * from one sheet to another. For example: *

*
         * ConditionalFormatting cf = sheet.GetConditionalFormattingAt(index);
         * newSheet.AddConditionalFormatting(cf);
         * 
* * @param cf the Conditional Formatting to clone * @return index of the new Conditional Formatting object */ int AddConditionalFormatting(IConditionalFormatting cf); /** * A factory method allowing to create a conditional formatting rule * with a cell comparison operator *

* The Created conditional formatting rule Compares a cell value * to a formula calculated result, using the specified operator. * The type of the Created condition is {@link ConditionalFormattingRule#CONDITION_TYPE_CELL_VALUE_IS} *

* * @param comparisonOperation - MUST be a constant value from * {@link ComparisonOperator}:

*

*

* @param formula1 - formula for the valued, Compared with the cell * @param formula2 - second formula (only used with * {@link ComparisonOperator#BETWEEN}) and {@link ComparisonOperator#NOT_BETWEEN} operations) */ IConditionalFormattingRule CreateConditionalFormattingRule( ComparisonOperator comparisonOperation, String formula1, String formula2); /** * Create a conditional formatting rule that Compares a cell value * to a formula calculated result, using an operator * *

* The type of the Created condition is {@link ConditionalFormattingRule#CONDITION_TYPE_CELL_VALUE_IS} *

* * @param comparisonOperation MUST be a constant value from * {@link ComparisonOperator} except BETWEEN and NOT_BETWEEN * * @param formula the formula to determine if the conditional formatting is applied */ IConditionalFormattingRule CreateConditionalFormattingRule( ComparisonOperator comparisonOperation, String formula); /** * Create a conditional formatting rule based on a Boolean formula. * When the formula result is true, the cell is highlighted. * *

* The type of the Created format condition is {@link ConditionalFormattingRule#CONDITION_TYPE_FORMULA} *

* @param formula the formula to Evaluate. MUST be a Boolean function. */ IConditionalFormattingRule CreateConditionalFormattingRule(String formula); /** * Gets Conditional Formatting object at a particular index * * @param index 0-based index of the Conditional Formatting object to fetch * @return Conditional Formatting object or null if not found * @throws ArgumentException if the index is outside of the allowable range (0 ... numberOfFormats-1) */ IConditionalFormatting GetConditionalFormattingAt(int index); /** * * @return the number of conditional formats in this sheet */ int NumConditionalFormattings { get; } /** * Removes a Conditional Formatting object by index * * @param index 0-based index of the Conditional Formatting object to remove * @throws ArgumentException if the index is outside of the allowable range (0 ... numberOfFormats-1) */ void RemoveConditionalFormatting(int index); } }