[]
IFormatCondition 定义了工作表区域的条件格式规则,包括规则类型、规则应用的区域,以及满足规则条件时使用的格式。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
condition.getBorders().setColor(Color.GetRed());
voiddelete()voidIRange 对象,该对象指定应用格式规则的单元格区域。IBorders 实例,该实例表示此条件格式的边框。TimePeriods 日期运算符。getFont()IFont 实例,该实例表示此条件格式的字体。IInterior 实例,该实例表示此条件格式的背景色。true 时应用于单元格的数字格式。intbooleantrue,是否应评估单元格上的其他附加格式规则。getText()ContainsOperator 枚举中的一个常量,指定条件格式规则执行的文本搜索。getType()voidsetAppliesTo(IRange value) voidsetDateOperator(TimePeriods value) TimePeriods 日期运算符。void1,以便它会在工作表上的所有其他规则之前进行评估。voidsetFormula1(Object value) voidsetFormula2(Object value) voidvoidsetNumberFormat(String value) true 时应用于单元格的数字格式。voidvoidsetPriority(int value) voidsetStopIfTrue(boolean value) true,是否应评估单元格上的其他格式规则。voidvoidsetTextOperator(ContainsOperator value) ContainsOperator 枚举的一个常量,用于指定条件格式规则执行的文本搜索。toJson()IRange 对象,该对象指定应用格式规则的单元格区域。使用 setAppliesTo(IRange) 更改与此条件格式规则关联的区域。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
IRange appliesTo = condition.getAppliesTo();
IRange 对象。使用此方法可更改与当前条件格式规则关联的 IRange。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setAppliesTo(worksheet.getRange("A1:A5"));
value - 应用此格式规则的 IRange 对象。不得为 null。IBorders 实例,该实例表示此条件格式的边框。使用返回的边框集合可访问或修改存储在条件格式规则中的边框设置。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
IBorders borders = condition.getBorders();
borders.setColor(Color.GetRed());
IBorders 实例。TimePeriods 日期运算符。对于时间段条件格式规则,此值表示该规则使用的相对日期期间。
worksheet.getRange("A1").setFormula("=TODAY()-1");
worksheet.getRange("B1").setFormula("=TODAY()");
worksheet.getRange("C1").setFormula("=TODAY()+1");
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:C1")
.getFormatConditions().add(FormatConditionType.TimePeriod, FormatConditionOperator.None, null, null);
condition.getInterior().setColor(Color.GetYellow());
condition.setDateOperator(TimePeriods.Today);
TimePeriods dateOperator = condition.getDateOperator();
TimePeriods 日期运算符。TimePeriods 日期运算符。将此方法与类型为 FormatConditionType.TimePeriod 的条件格式规则配合使用,以指定该规则评估的相对日期周期,例如今天、明天或过去 7 天。
worksheet.getRange("A1").setFormula("=TODAY()-1");
worksheet.getRange("B1").setFormula("=TODAY()");
worksheet.getRange("C1").setFormula("=TODAY()+1");
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:C1")
.getFormatConditions().add(FormatConditionType.TimePeriod, FormatConditionOperator.None, null, null);
condition.getInterior().setColor(Color.GetYellow());
condition.setDateOperator(TimePeriods.Today);
value - 指定在格式条件中使用的日期周期的 TimePeriods 值。IFont 实例,该实例表示此条件格式的字体。使用返回的字体对象可以配置在触发条件格式规则时应用的字体设置。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
IFont font = condition.getFont();
font.setBold(true);
IFont 实例。返回的值表示与条件格式规则关联的第一个比较值或表达式。根据规则类型,它可以是常量值、字符串值、单元格引用或公式。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1>0", null);
condition.getInterior().setColor(Color.GetYellow());
Object formula1 = condition.getFormula1();
设置的值表示与条件格式规则关联的第一个比较值或表达式。根据规则类型,它可以是常量值、字符串、单元格引用或公式。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1>0", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setFormula1("=A1>0");
value - 与此条件格式关联的第一个公式、值、单元格引用或表达式。此属性用于存储两个公式的条件格式规则,例如使用 FormatConditionOperator.Between 或 FormatConditionOperator.NotBetween 运算符的 FormatConditionType.CellValue 规则。
worksheet.getRange("A1:A5").setValue(new Object[][] {{1}, {3}, {5}, {7}, {9}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A5")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Between, "2", "8");
condition.getInterior().setColor(Color.GetYellow());
Object formula2 = condition.getFormula2();
null。此属性用于存储两个公式的条件格式规则,例如使用 FormatConditionOperator.Between 或 FormatConditionOperator.NotBetween 运算符的 FormatConditionType.CellValue 规则。
worksheet.getRange("A1:A5").setValue(new Object[][] {{1}, {3}, {5}, {7}, {9}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A5")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Between, "2", "8");
condition.getInterior().setColor(Color.GetYellow());
condition.setFormula2(100);
value - 此条件格式的第二个公式。如果该规则不使用第二个公式,则设置 null。IInterior 实例,该实例表示此条件格式的背景色。使用返回的 IInterior 对象可以读取或修改条件格式规则生效时应用的填充设置。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
IInterior interior = condition.getInterior();
interior.setColor(Color.GetRed());
IInterior 实例。true 时应用于单元格的数字格式。返回通过 setNumberFormat(String) 为此条件格式规则分配的格式字符串。
worksheet.getRange("A1:A3").setValue(new Object[][] {{85}, {95}, {105}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A3")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Greater, "90", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setNumberFormat("0.00");
String numberFormat = condition.getNumberFormat();
true 时应用于单元格的数字格式。true 时应用于单元格的数字格式。
worksheet.getRange("A1:A3").setValue(new Object[][] {{85}, {95}, {105}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A3")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Greater, "90", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setNumberFormat("0.00");
value - 当条件格式规则计算结果为 true 时应用于单元格的数字格式。该运算符指定条件格式规则如何将单元格值与该规则的公式值进行比较。例如,它可以表示诸如等于、大于或介于两者之间等比较。
worksheet.getRange("A1:A3").setValue(new Object[][] {{1}, {3}, {5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A3")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Between, "2", "4");
condition.getInterior().setColor(Color.GetYellow());
FormatConditionOperator operator = condition.getOperator();
使用此方法可更改条件格式规则所使用的比较运算符。
IRange range = worksheet.getRange("A1:A5");
range.setValue(new Object[][] {{10}, {30}, {50}, {70}, {90}});
IFormatCondition condition = (IFormatCondition) range.getFormatConditions().add(
FormatConditionType.CellValue, FormatConditionOperator.Between, 30, 70);
condition.getInterior().setColor(Color.GetYellow());
condition.setOperator(FormatConditionOperator.NotBetween);
value - 要应用的条件格式运算符。较低的优先级值表示该规则会更早被计算。使用 setPriority(int)、setFirstPriority() 或 setLastPriority() 可更改计算顺序。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
int priority = condition.getPriority();
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setPriority(1);
value - 条件格式规则的优先级值。true,是否应评估单元格上的其他附加格式规则。如果此方法返回 true,则当当前规则计算结果为 true 后,将不再评估同一单元格上优先级较低的格式规则。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1>0", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setStopIfTrue(true);
boolean stopIfTrue = condition.getStopIfTrue();
true 后,不应评估单元格上的其他附加格式规则,则为 true;否则为 false。true,是否应评估单元格上的其他格式规则。如果此方法设置为 true,则在当前规则计算结果为 true 后,不会再评估同一单元格上优先级较低的格式规则。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1>0", null);
condition.getInterior().setColor(Color.GetYellow());
condition.setStopIfTrue(true);
value - 如果当前规则计算结果为 true 后,不应再评估单元格上的其他格式规则,则为 true;否则为 false。使用此方法可为基于文本的条件格式规则配置文本。此值与 getTextOperator() 一起使用,以定义规则如何搜索匹配的文本。
worksheet.getRange("A1:A3").setValue(new Object[][] {{"Pending"}, {"Done"}, {"Pending Review"}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A3")
.getFormatConditions().add(FormatConditionType.TextString, FormatConditionOperator.None, null, null);
condition.getInterior().setColor(Color.GetYellow());
condition.setText("Pending");
String text = condition.getText();
使用此方法可为基于文本的条件格式规则配置文本。此值与 getTextOperator() 一起使用,以定义规则如何搜索匹配的文本。
worksheet.getRange("A1:A3").setValue(new Object[][] {{"Pending"}, {"Done"}, {"Pending Review"}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A3")
.getFormatConditions().add(FormatConditionType.TextString, FormatConditionOperator.None, null, null);
condition.getInterior().setColor(Color.GetYellow());
condition.setText("Pending");
value - 条件格式规则使用的文本。ContainsOperator 枚举中的一个常量,指定条件格式规则执行的文本搜索。将此方法与 FormatConditionType.TextString 条件格式规则一起使用,以确定该规则是否检查单元格文本是否包含、不包含、以指定文本开头或以指定文本结尾。
worksheet.getRange("A1:A4").setValue(new Object[][] {{"Apple"}, {"Pear"}, {"Apricot"}, {"Plum"}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A4")
.getFormatConditions().add(FormatConditionType.TextString);
condition.getInterior().setColor(Color.GetYellow());
condition.setText("Ap");
condition.setTextOperator(ContainsOperator.BeginsWith);
ContainsOperator textOperator = condition.getTextOperator();
ContainsOperator 常量之一,用于指定条件格式规则执行的文本搜索。ContainsOperator 枚举的一个常量,用于指定条件格式规则执行的文本搜索。将此方法与 FormatConditionType.TextString 条件格式规则一起使用,可以控制规则检查单元格文本是否包含或不包含指定文本,或者是否以指定文本开头或结尾。
worksheet.getRange("A1:A4").setValue(new Object[][] {{"Apple"}, {"Pear"}, {"Apricot"}, {"Plum"}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("A1:A4")
.getFormatConditions().add(FormatConditionType.TextString);
condition.getInterior().setColor(Color.GetYellow());
condition.setText("Ap");
condition.setTextOperator(ContainsOperator.BeginsWith);
value - ContainsOperator 常量之一,用于指定条件格式规则执行的文本搜索。不支持 null。返回的值是 FormatConditionType 中的常量之一,并指示此对象表示哪种条件格式规则。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
FormatConditionType type = condition.getType();
使用此方法可从工作表中移除当前条件格式规则。
worksheet.getRange("A1:B5").setValue(new Object[][] {{1, 2}, {0, 1}, {0, 0}, {0, 3}, {4, 5}});
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=A1", null);
condition.getInterior().setColor(Color.GetYellow());
condition.delete();
1,以便它会在工作表上的所有其他规则之前进行评估。使用此方法可将当前条件格式规则移动到工作表中的最高评估优先级。
IRange range = worksheet.getRange("A1:A5");
range.setValue(new Object[][] {{10}, {30}, {50}, {70}, {90}});
IFormatCondition firstCondition = (IFormatCondition) range.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Greater, 60, null);
firstCondition.getInterior().setColor(Color.GetYellow());
IFormatCondition condition = (IFormatCondition) range.getFormatConditions().add(
FormatConditionType.CellValue, FormatConditionOperator.Between, 30, 70);
condition.getInterior().setColor(Color.GetLightBlue());
condition.setFirstPriority();
使用此方法可将当前规则移动到工作表上条件格式规则中的最低计算优先级。
worksheet.getRange("A1:B5").setValue(new Object[][] {
{10, 5}, {30, 15}, {20, 25}, {50, 35}, {40, 45}
});
IFormatCondition firstCondition = (IFormatCondition) worksheet.getRange("A1:A5")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Greater, 25, null);
firstCondition.getInterior().setColor(Color.GetYellow());
IFormatCondition secondCondition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.CellValue, FormatConditionOperator.Less, 30, null);
secondCondition.getInterior().setColor(Color.GetLightBlue());
secondCondition.setLastPriority();
使用此方法可从 JSON 字符串还原条件格式规则,例如先前由 toJson() 生成的字符串。
worksheet.getRange("A1:A5").setValue(new Object[][] {{1}, {2}, {3}, {4}, {5}});
String json = "{\"ranges\":[{\"row\":0,\"col\":1,\"rowCount\":5,\"colCount\":1}],\"priority\":1,\"ruleType\":1,\"operator\":2,\"value1\":\"3\",\"value2\":\"\"}";
IFormatCondition condition = (IFormatCondition) worksheet.getRange("B1:B5")
.getFormatConditions().add(FormatConditionType.Expression, FormatConditionOperator.None, "=TRUE", null);
condition.fromJson(json);
condition.getInterior().setColor(Color.GetYellow());
json - 定义条件格式的 JSON 字符串。返回的字符串表示当前的条件格式规则,并且可与 fromJson(String) 一起使用以重新创建该规则。
IRange range = worksheet.getRange("A1:A5");
range.setValue(new Object[][] {{10}, {30}, {50}, {70}, {90}});
IFormatCondition condition = (IFormatCondition) range.getFormatConditions().add(
FormatConditionType.CellValue, FormatConditionOperator.Greater, 60, null);
condition.getInterior().setColor(Color.GetYellow());
String json = condition.toJson();