blob: 3344963bb6bce46065064ee51a959e59d408bf7e [file] [log] [blame]
/*
* ====================================================================
* 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.util.CellRangeAddress;
/**
* The ConditionalFormatting class encapsulates all settings of Conditional Formatting.
*
* The class can be used
*
* <UL>
* <LI>
* to make a copy ConditionalFormatting settings.
* </LI>
*
*
* For example:
* <PRE>
* ConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
* newSheet.addConditionalFormatting(cf);
* </PRE>
*
* <LI>
* or to modify existing Conditional Formatting settings (formatting regions and/or rules).
* </LI>
* </UL>
*
* Use {@link org.apache.poi.ss.usermodel.Sheet#getSheetConditionalFormatting()}
* to get access to an instance of this class.
* <P>
* To create a new Conditional Formatting set use the following approach:
*
* <PRE>
*
* // Define a Conditional Formatting rule, which triggers formatting
* // when cell's value is greater or equal than 100.0 and
* // applies patternFormatting defined below.
* ConditionalFormattingRule rule = sheet.createConditionalFormattingRule(
* ComparisonOperator.GE,
* "100.0", // 1st formula
* null // 2nd formula is not used for comparison operator GE
* );
*
* // Create pattern with red background
* PatternFormatting patternFmt = rule.cretePatternFormatting();
* patternFormatting.setFillBackgroundColor(IndexedColor.RED.getIndex());
*
* // Define a region containing first column
* Region [] regions =
* {
* new Region(1,(short)1,-1,(short)1)
* };
*
* // Apply Conditional Formatting rule defined above to the regions
* sheet.addConditionalFormatting(regions, rule);
* </PRE>
*
* @author Dmitriy Kumshayev
* @author Yegor Kozlov
*/
public interface ConditionalFormatting {
/**
* @return array of <tt>CellRangeAddress</tt>s. Never <code>null</code>
*/
CellRangeAddress[] getFormattingRanges();
/**
* Replaces an existing Conditional Formatting rule at position idx.
* Excel allows to create up to 3 Conditional Formatting rules.
* This method can be useful to modify existing Conditional Formatting rules.
*
* @param idx position of the rule. Should be between 0 and 2.
* @param cfRule - Conditional Formatting rule
*/
void setRule(int idx, ConditionalFormattingRule cfRule);
/**
* Add a Conditional Formatting rule.
* Excel allows to create up to 3 Conditional Formatting rules.
*
* @param cfRule - Conditional Formatting rule
*/
void addRule(ConditionalFormattingRule cfRule);
/**
* @return the Conditional Formatting rule at position idx.
*/
ConditionalFormattingRule getRule(int idx);
/**
* @return number of Conditional Formatting rules.
*/
int getNumberOfRules();
}