Top Description Methods
org.apache.poi.ss.usermodel

public Interface ConditionalFormatting

Known Direct Implementers
org.apache.poi.hssf.usermodel.HSSFConditionalFormatting
Imports
org.apache.poi.ss.util.CellRangeAddress

The ConditionalFormatting class encapsulates all settings of Conditional Formatting. The class can be used to make a copy ConditionalFormatting settings.

For example:

ConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
newSheet.addConditionalFormatting(cf);
or to modify existing Conditional Formatting settings (formatting regions and/or rules).

Use org.apache.poi.ss.usermodel.Sheet#getSheetConditionalFormatting() to get access to an instance of this class.

To create a new Conditional Formatting set use the following approach:

// 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);

Method Summary

Modifier and TypeMethod and Description
public void
addRule(ConditionalFormattingRule
- Conditional Formatting rule
cfRule
)

Add a Conditional Formatting rule.

public CellRangeAddress[]

Returns:

array of CellRangeAddresss. Never null
getFormattingRanges
()

public int

Returns:

number of Conditional Formatting rules.
getNumberOfRules
()

public ConditionalFormattingRule

Returns:

the Conditional Formatting rule at position idx.
getRule
(int idx)

public void
setFormattingRanges(CellRangeAddress[]
non-null array of CellRangeAddresss
ranges
)

Sets the cell ranges the rule conditional formatting must be applied to.

public void
setRule(int
position of the rule. Should be between 0 and 2 for Excel before 2007, otherwise 0+.
idx
,
ConditionalFormattingRule
- Conditional Formatting rule
cfRule
)

Replaces an existing Conditional Formatting rule at position idx.

Method Detail

addRuleback to summary
public void addRule(ConditionalFormattingRule cfRule)

Add a Conditional Formatting rule. Excel pre-2007 allows to create up to 3 Conditional Formatting rules.

Parameters
cfRule:ConditionalFormattingRule

- Conditional Formatting rule

getFormattingRangesback to summary
public CellRangeAddress[] getFormattingRanges()
Returns:CellRangeAddress[]

array of CellRangeAddresss. Never null

getNumberOfRulesback to summary
public int getNumberOfRules()
Returns:int

number of Conditional Formatting rules.

getRuleback to summary
public ConditionalFormattingRule getRule(int idx)
Returns:ConditionalFormattingRule

the Conditional Formatting rule at position idx.

setFormattingRangesback to summary
public void setFormattingRanges(CellRangeAddress[] ranges)

Sets the cell ranges the rule conditional formatting must be applied to.

Parameters
ranges:CellRangeAddress[]

non-null array of CellRangeAddresss

setRuleback to summary
public void setRule(int idx, ConditionalFormattingRule cfRule)

Replaces an existing Conditional Formatting rule at position idx. Excel pre-2007 allows to create up to 3 Conditional Formatting rules, 2007 and later allow unlimited numbers. This method can be useful to modify existing Conditional Formatting rules.

Parameters
idx:int

position of the rule. Should be between 0 and 2 for Excel before 2007, otherwise 0+.

cfRule:ConditionalFormattingRule

- Conditional Formatting rule