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, IConditionalFormattingRule[] cfRules){if (regions == null){throw new ArgumentException("regions must not be null");}if (cfRules == null){throw new ArgumentException("cfRules must not be null");}if (cfRules.Length == 0){throw new ArgumentException("cfRules must not be empty");}if (cfRules.Length > 3){throw new ArgumentException("Number of rules must not exceed 3");}CFRuleRecord[] rules = new CFRuleRecord[cfRules.Length];for (int i = 0; i != cfRules.Length; i++){rules[i] = ((HSSFConditionalFormattingRule)cfRules[i]).CfRuleRecord;}CFRecordsAggregate cfra = new CFRecordsAggregate(regions, rules);return _conditionalFormattingTable.Add(cfra);}
