All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.poi.ss.usermodel.SheetConditionalFormatting Maven / Gradle / Ivy

Go to download

The Apache Commons Codec package contains simple encoder and decoders for various formats such as Base64 and Hexadecimal. In addition to these widely used encoders and decoders, the codec package also maintains a collection of phonetic encoding utilities.

There is a newer version: 62
Show newest version
/*
 *  ====================================================================
 *    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.
 * ====================================================================
 */

package org.apache.poi.ss.usermodel;

import org.apache.poi.ss.usermodel.IconMultiStateFormatting.IconSet;
import org.apache.poi.ss.util.CellRangeAddress;

/**
 * The 'Conditional Formatting' facet of {@code Sheet}
 *
 * @since 3.8
 */
public interface SheetConditionalFormatting {
    /**
     * 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,
                                 ConditionalFormattingRule 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 rule2 -  the second rule
     *
     * @return index of the newly created Conditional Formatting object
     */
    int addConditionalFormatting(CellRangeAddress[] regions,
                                 ConditionalFormattingRule rule1,
                                 ConditionalFormattingRule 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 conditional formatting rules (max 3 for Excel pre-2007)
     *
     * @return index of the newly created Conditional Formatting object
     */
    int addConditionalFormatting(CellRangeAddress[] regions, ConditionalFormattingRule[] 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(ConditionalFormatting 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 ConditionType#CELL_VALUE_IS} *

* * @param comparisonOperation - MUST be a constant value from * {@link ComparisonOperator}: *
    *
  • BETWEEN
  • *
  • NOT_BETWEEN
  • *
  • EQUAL
  • *
  • NOT_EQUAL
  • *
  • GT
  • *
  • LT
  • *
  • GE
  • *
  • LE
  • *
* @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) */ ConditionalFormattingRule createConditionalFormattingRule( byte 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 ConditionType#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 */ ConditionalFormattingRule createConditionalFormattingRule( byte 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 ConditionType#FORMULA} *

* @param formula the formula to evaluate. MUST be a Boolean function. */ ConditionalFormattingRule createConditionalFormattingRule(String formula); /** * Create a Databar conditional formatting rule. *

The thresholds and colour for it will be created, but will be * empty and require configuring with * {@link ConditionalFormattingRule#getDataBarFormatting()} * then * {@link DataBarFormatting#getMinThreshold()} * and * {@link DataBarFormatting#getMaxThreshold()} */ ConditionalFormattingRule createConditionalFormattingRule(ExtendedColor color); /** * Create an Icon Set / Multi-State conditional formatting rule. *

The thresholds for it will be created, but will be empty * and require configuring with * {@link ConditionalFormattingRule#getMultiStateFormatting()} * then * {@link IconMultiStateFormatting#getThresholds()} */ ConditionalFormattingRule createConditionalFormattingRule(IconSet iconSet); /** * Create a Color Scale / Color Gradient conditional formatting rule. *

The thresholds and colours for it will be created, but will be * empty and require configuring with * {@link ConditionalFormattingRule#getColorScaleFormatting()} * then * {@link ColorScaleFormatting#getThresholds()} * and * {@link ColorScaleFormatting#getColors()} */ ConditionalFormattingRule createConditionalFormattingColorScaleRule(); /** * 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 {@code null} if not found * @throws IllegalArgumentException if the index is outside of the allowable range (0 ... numberOfFormats-1) */ ConditionalFormatting getConditionalFormattingAt(int index); /** * * @return the number of conditional formats in this sheet */ int getNumConditionalFormattings(); /** * Removes a Conditional Formatting object by index * * @param index 0-based index of the Conditional Formatting object to remove * @throws IllegalArgumentException if the index is outside of the allowable range (0 ... numberOfFormats-1) */ void removeConditionalFormatting(int index); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy