* The 'Conditional Formatting' facet of <tt>HSSFSheet</tt>
*/
public final class HSSFSheetConditionalFormatting implements SheetConditionalFormatting {
+ private final HSSFSheet _sheet;
+ private final ConditionalFormattingTable _conditionalFormattingTable;
- private final HSSFSheet _sheet;
- private final ConditionalFormattingTable _conditionalFormattingTable;
-
- /* package */ HSSFSheetConditionalFormatting(HSSFSheet sheet) {
- _sheet = sheet;
- _conditionalFormattingTable = sheet.getSheet().getConditionalFormattingTable();
- }
-
- /**
- * A factory method allowing to create a conditional formatting rule
- * with a cell comparison operator<p/>
- * TODO - formulas containing cell references are currently not parsed properly
- *
- * @param comparisonOperation - a constant value from
- * <tt>{@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator}</tt>: <p>
- * <ul>
- * <li>BETWEEN</li>
- * <li>NOT_BETWEEN</li>
- * <li>EQUAL</li>
- * <li>NOT_EQUAL</li>
- * <li>GT</li>
- * <li>LT</li>
- * <li>GE</li>
- * <li>LE</li>
- * </ul>
- * </p>
- * @param formula1 - formula for the valued, compared with the cell
- * @param formula2 - second formula (only used with
- * {@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator#BETWEEN}) and
- * {@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator#NOT_BETWEEN} operations)
- */
- public HSSFConditionalFormattingRule createConditionalFormattingRule(
- byte comparisonOperation,
- String formula1,
- String formula2) {
- CFRuleRecord rr = CFRuleRecord.create(_sheet, comparisonOperation, formula1, formula2);
- return new HSSFConditionalFormattingRule(_sheet, rr);
- }
+ /* package */ HSSFSheetConditionalFormatting(HSSFSheet sheet) {
+ _sheet = sheet;
+ _conditionalFormattingTable = sheet.getSheet().getConditionalFormattingTable();
+ }
+
+ /**
+ * A factory method allowing to create a conditional formatting rule
+ * with a cell comparison operator<p/>
+ * TODO - formulas containing cell references are currently not parsed properly
+ *
+ * @param comparisonOperation - a constant value from
+ * <tt>{@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator}</tt>: <p>
+ * <ul>
+ * <li>BETWEEN</li>
+ * <li>NOT_BETWEEN</li>
+ * <li>EQUAL</li>
+ * <li>NOT_EQUAL</li>
+ * <li>GT</li>
+ * <li>LT</li>
+ * <li>GE</li>
+ * <li>LE</li>
+ * </ul>
+ * </p>
+ * @param formula1 - formula for the valued, compared with the cell
+ * @param formula2 - second formula (only used with
+ * {@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator#BETWEEN}) and
+ * {@link org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator#NOT_BETWEEN} operations)
+ */
+ public HSSFConditionalFormattingRule createConditionalFormattingRule(
+ byte comparisonOperation,
+ String formula1,
+ String formula2) {
+ CFRuleRecord rr = CFRuleRecord.create(_sheet, comparisonOperation, formula1, formula2);
+ return new HSSFConditionalFormattingRule(_sheet, rr);
+ }
public HSSFConditionalFormattingRule createConditionalFormattingRule(
byte comparisonOperation,
return new HSSFConditionalFormattingRule(_sheet, rr);
}
- /**
- * A factory method allowing to create a conditional formatting rule with a formula.<br>
- *
- * The formatting rules are applied by Excel when the value of the formula not equal to 0.<p/>
- * TODO - formulas containing cell references are currently not parsed properly
- * @param formula - formula for the valued, compared with the cell
- */
- public HSSFConditionalFormattingRule createConditionalFormattingRule(String formula) {
- CFRuleRecord rr = CFRuleRecord.create(_sheet, formula);
- return new HSSFConditionalFormattingRule(_sheet, rr);
- }
-
- /**
- * A factory method allowing the creation of conditional formatting
- * rules using an Icon Set / Multi-State formatting.
- * The thresholds for it will be created, but will be empty
- * and require configuring with
- * {@link HSSFConditionalFormattingRule#getMultiStateFormatting()}
- * then
- * {@link HSSFIconMultiStateFormatting#getThresholds()}
- */
- public HSSFConditionalFormattingRule createConditionalFormattingRule(
- IconSet iconSet) {
+ /**
+ * A factory method allowing to create a conditional formatting rule with a formula.<br>
+ *
+ * The formatting rules are applied by Excel when the value of the formula not equal to 0.<p/>
+ * TODO - formulas containing cell references are currently not parsed properly
+ * @param formula - formula for the valued, compared with the cell
+ */
+ public HSSFConditionalFormattingRule createConditionalFormattingRule(String formula) {
+ CFRuleRecord rr = CFRuleRecord.create(_sheet, formula);
+ return new HSSFConditionalFormattingRule(_sheet, rr);
+ }
+
+ /**
+ * A factory method allowing the creation of conditional formatting
+ * rules using an Icon Set / Multi-State formatting.
+ * The thresholds for it will be created, but will be empty
+ * and require configuring with
+ * {@link HSSFConditionalFormattingRule#getMultiStateFormatting()}
+ * then
+ * {@link HSSFIconMultiStateFormatting#getThresholds()}
+ */
+ public HSSFConditionalFormattingRule createConditionalFormattingRule(
+ IconSet iconSet) {
CFRule12Record rr = CFRule12Record.create(_sheet, iconSet);
return new HSSFConditionalFormattingRule(_sheet, rr);
- }
+ }
// TODO Support types beyond CELL_VALUE_IS and FORMULA and ICONs
-
- /**
- * Adds a copy of HSSFConditionalFormatting object to the sheet
- * <p>This method could be used to copy HSSFConditionalFormatting object
- * from one sheet to another. For example:
- * <pre>
- * HSSFConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
- * newSheet.addConditionalFormatting(cf);
- * </pre>
- *
- * @param cf HSSFConditionalFormatting object
- * @return index of the new Conditional Formatting object
- */
- public int addConditionalFormatting( HSSFConditionalFormatting cf ) {
- CFRecordsAggregate cfraClone = cf.getCFRecordsAggregate().cloneCFAggregate();
-
- return _conditionalFormattingTable.add(cfraClone);
- }
+
+ /**
+ * Adds a copy of HSSFConditionalFormatting object to the sheet
+ * <p>This method could be used to copy HSSFConditionalFormatting object
+ * from one sheet to another. For example:
+ * <pre>
+ * HSSFConditionalFormatting cf = sheet.getConditionalFormattingAt(index);
+ * newSheet.addConditionalFormatting(cf);
+ * </pre>
+ *
+ * @param cf HSSFConditionalFormatting object
+ * @return index of the new Conditional Formatting object
+ */
+ public int addConditionalFormatting( HSSFConditionalFormatting cf ) {
+ CFRecordsAggregate cfraClone = cf.getCFRecordsAggregate().cloneCFAggregate();
+
+ return _conditionalFormattingTable.add(cfraClone);
+ }
public int addConditionalFormatting( ConditionalFormatting cf ) {
return addConditionalFormatting((HSSFConditionalFormatting)cf);
}
- /**
- * @deprecated use <tt>CellRangeAddress</tt> instead of <tt>Region</tt>
- */
- public int addConditionalFormatting(org.apache.poi.ss.util.Region[] regions, HSSFConditionalFormattingRule[] cfRules) {
- return addConditionalFormatting(org.apache.poi.ss.util.Region.convertRegionsToCellRanges(regions), cfRules);
- }
- /**
- * Allows to 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
- */
- public int addConditionalFormatting(CellRangeAddress[] regions, HSSFConditionalFormattingRule[] cfRules) {
- if (regions == null) {
- throw new IllegalArgumentException("regions must not be null");
- }
- for(CellRangeAddress range : regions) range.validate(SpreadsheetVersion.EXCEL97);
-
- if (cfRules == null) {
- throw new IllegalArgumentException("cfRules must not be null");
- }
- if (cfRules.length == 0) {
- throw new IllegalArgumentException("cfRules must not be empty");
- }
- if (cfRules.length > 3) {
- throw new IllegalArgumentException("Number of rules must not exceed 3");
- }
-
- CFRuleBase[] rules = new CFRuleBase[cfRules.length];
- for (int i = 0; i != cfRules.length; i++) {
- rules[i] = cfRules[i].getCfRuleRecord();
- }
- CFRecordsAggregate cfra = new CFRecordsAggregate(regions, rules);
- return _conditionalFormattingTable.add(cfra);
- }
+ /**
+ * @deprecated use <tt>CellRangeAddress</tt> instead of <tt>Region</tt>
+ */
+ public int addConditionalFormatting(org.apache.poi.ss.util.Region[] regions, HSSFConditionalFormattingRule[] cfRules) {
+ return addConditionalFormatting(org.apache.poi.ss.util.Region.convertRegionsToCellRanges(regions), cfRules);
+ }
+ /**
+ * Allows to 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
+ */
+ public int addConditionalFormatting(CellRangeAddress[] regions, HSSFConditionalFormattingRule[] cfRules) {
+ if (regions == null) {
+ throw new IllegalArgumentException("regions must not be null");
+ }
+ for(CellRangeAddress range : regions) range.validate(SpreadsheetVersion.EXCEL97);
+
+ if (cfRules == null) {
+ throw new IllegalArgumentException("cfRules must not be null");
+ }
+ if (cfRules.length == 0) {
+ throw new IllegalArgumentException("cfRules must not be empty");
+ }
+ if (cfRules.length > 3) {
+ throw new IllegalArgumentException("Number of rules must not exceed 3");
+ }
+
+ CFRuleBase[] rules = new CFRuleBase[cfRules.length];
+ for (int i = 0; i != cfRules.length; i++) {
+ rules[i] = cfRules[i].getCfRuleRecord();
+ }
+ CFRecordsAggregate cfra = new CFRecordsAggregate(regions, rules);
+ return _conditionalFormattingTable.add(cfra);
+ }
public int addConditionalFormatting(CellRangeAddress[] regions, ConditionalFormattingRule[] cfRules) {
HSSFConditionalFormattingRule[] hfRules;
return addConditionalFormatting(regions, hfRules);
}
- public int addConditionalFormatting(CellRangeAddress[] regions,
- HSSFConditionalFormattingRule rule1)
- {
- return addConditionalFormatting(regions,
- rule1 == null ? null : new HSSFConditionalFormattingRule[]
- {
- rule1
- });
- }
+ public int addConditionalFormatting(CellRangeAddress[] regions,
+ HSSFConditionalFormattingRule rule1) {
+ return addConditionalFormatting(regions, rule1 == null ?
+ null : new HSSFConditionalFormattingRule[] { rule1 }
+ );
+ }
public int addConditionalFormatting(CellRangeAddress[] regions,
- ConditionalFormattingRule rule1)
- {
+ ConditionalFormattingRule rule1) {
return addConditionalFormatting(regions, (HSSFConditionalFormattingRule)rule1);
}
- public int addConditionalFormatting(CellRangeAddress[] regions,
- HSSFConditionalFormattingRule rule1,
- HSSFConditionalFormattingRule rule2)
- {
- return addConditionalFormatting(regions,
- new HSSFConditionalFormattingRule[]
- {
- rule1, rule2
- });
- }
+ public int addConditionalFormatting(CellRangeAddress[] regions,
+ HSSFConditionalFormattingRule rule1,
+ HSSFConditionalFormattingRule rule2) {
+ return addConditionalFormatting(regions,
+ new HSSFConditionalFormattingRule[] { rule1, rule2 });
+ }
public int addConditionalFormatting(CellRangeAddress[] regions,
ConditionalFormattingRule rule1,
- ConditionalFormattingRule rule2)
- {
+ ConditionalFormattingRule rule2) {
return addConditionalFormatting(regions,
(HSSFConditionalFormattingRule)rule1,
(HSSFConditionalFormattingRule)rule2
- );
- }
-
- /**
- * gets Conditional Formatting object at a particular index
- *
- * @param index
- * of the Conditional Formatting object to fetch
- * @return Conditional Formatting object
- */
- public HSSFConditionalFormatting getConditionalFormattingAt(int index) {
- CFRecordsAggregate cf = _conditionalFormattingTable.get(index);
- if (cf == null) {
- return null;
- }
- return new HSSFConditionalFormatting(_sheet, cf);
- }
-
- /**
- * @return number of Conditional Formatting objects of the sheet
- */
- public int getNumConditionalFormattings() {
- return _conditionalFormattingTable.size();
- }
-
- /**
- * removes a Conditional Formatting object by index
- * @param index of a Conditional Formatting object to remove
- */
- public void removeConditionalFormatting(int index) {
- _conditionalFormattingTable.remove(index);
- }
+ );
+ }
+
+ /**
+ * gets Conditional Formatting object at a particular index
+ *
+ * @param index
+ * of the Conditional Formatting object to fetch
+ * @return Conditional Formatting object
+ */
+ public HSSFConditionalFormatting getConditionalFormattingAt(int index) {
+ CFRecordsAggregate cf = _conditionalFormattingTable.get(index);
+ if (cf == null) {
+ return null;
+ }
+ return new HSSFConditionalFormatting(_sheet, cf);
+ }
+
+ /**
+ * @return number of Conditional Formatting objects of the sheet
+ */
+ public int getNumConditionalFormattings() {
+ return _conditionalFormattingTable.size();
+ }
+
+ /**
+ * removes a Conditional Formatting object by index
+ * @param index of a Conditional Formatting object to remove
+ */
+ public void removeConditionalFormatting(int index) {
+ _conditionalFormattingTable.remove(index);
+ }
}