[]
        
首页
开发者学堂
文档
论坛
市场
生态机会
活动
立即试用
(Showing Draft Content)

IFormatCondition

Interface IFormatCondition


public interface IFormatCondition
表示一个条件格式。

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());
 
  • Method Details

    • getAppliesTo

      IRange getAppliesTo()
      获取 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();
       
      Returns:
      指定应用格式规则的单元格区域的 IRange 对象。
    • setAppliesTo

      void setAppliesTo(IRange value)
      设置应用此格式规则的单元格区域。

      使用此方法可更改与当前条件格式规则关联的 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"));
       
      Parameters:
      value - 应用此格式规则的 IRange 对象。不得为 null。
    • getBorders

      IBorders getBorders()
      返回 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());
       
      Returns:
      表示此条件格式边框的 IBorders 实例。
    • getDateOperator

      TimePeriods getDateOperator()
      获取在格式条件中使用的 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();
       
      Returns:
      在格式条件中使用的 TimePeriods 日期运算符。
    • setDateOperator

      void setDateOperator(TimePeriods value)
      设置格式条件中使用的 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);
       
      Parameters:
      value - 指定在格式条件中使用的日期周期的 TimePeriods 值。
    • getFont

      IFont getFont()
      获取一个 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);
       
      Returns:
      表示此条件格式字体的 IFont 实例。
    • getFormula1

      Object 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());
       Object formula1 = condition.getFormula1();
       
      Returns:
      与此条件格式关联的第一个公式、值、单元格引用或表达式。
    • setFormula1

      void setFormula1(Object value)
      设置此条件格式的第一个公式。

      设置的值表示与条件格式规则关联的第一个比较值或表达式。根据规则类型,它可以是常量值、字符串、单元格引用或公式。

      
       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");
       
      Parameters:
      value - 与此条件格式关联的第一个公式、值、单元格引用或表达式。
    • getFormula2

      Object getFormula2()
      返回此条件格式的第二个公式。

      此属性用于存储两个公式的条件格式规则,例如使用 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();
       
      Returns:
      此条件格式的第二个公式。如果该规则不使用第二个公式,则返回 null。
    • setFormula2

      void setFormula2(Object 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());
       condition.setFormula2(100);
       
      Parameters:
      value - 此条件格式的第二个公式。如果该规则不使用第二个公式,则设置 null。
    • getInterior

      IInterior getInterior()
      返回 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());
       
      Returns:
      表示此条件格式背景色的 IInterior 实例。
    • getNumberFormat

      String getNumberFormat()
      获取当条件格式规则计算结果为 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();
       
      Returns:
      当条件格式规则计算结果为 true 时应用于单元格的数字格式。
    • setNumberFormat

      void setNumberFormat(String value)
      设置当条件格式规则计算结果为 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");
       
      Parameters:
      value - 当条件格式规则计算结果为 true 时应用于单元格的数字格式。
    • getOperator

      返回此条件格式的运算符。

      该运算符指定条件格式规则如何将单元格值与该规则的公式值进行比较。例如,它可以表示诸如等于、大于或介于两者之间等比较。

      
       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();
       
      Returns:
      此条件格式的运算符。
    • setOperator

      void setOperator(FormatConditionOperator value)
      设置此条件格式的运算符。

      使用此方法可更改条件格式规则所使用的比较运算符。

      
       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);
       
      Parameters:
      value - 要应用的条件格式运算符。
    • getPriority

      int getPriority()
      返回条件格式规则的优先级值。当工作表中存在多个条件格式规则时,优先级决定了它们的计算顺序。

      较低的优先级值表示该规则会更早被计算。使用 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();
       
      Returns:
      条件格式规则的优先级值。
    • setPriority

      void setPriority(int value)
      设置条件格式规则的优先级值。当工作表中存在多个条件格式规则时,该优先级决定其计算顺序。
      
       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);
       
      Parameters:
      value - 条件格式规则的优先级值。
    • getStopIfTrue

      boolean getStopIfTrue()
      获取一个布尔值,指示如果当前规则计算结果为 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();
       
      Returns:
      如果在当前规则计算结果为 true 后,不应评估单元格上的其他附加格式规则,则为 true;否则为 false。
    • setStopIfTrue

      void setStopIfTrue(boolean 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);
       
      Parameters:
      value - 如果当前规则计算结果为 true 后,不应再评估单元格上的其他格式规则,则为 true;否则为 false。
    • getText

      String 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");
       String text = condition.getText();
       
      Returns:
      条件格式规则使用的文本。
    • setText

      void setText(String value)
      设置一个字符串值,用于指定条件格式规则使用的文本。

      使用此方法可为基于文本的条件格式规则配置文本。此值与 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");
       
      Parameters:
      value - 条件格式规则使用的文本。
    • getTextOperator

      ContainsOperator getTextOperator()
      返回 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();
       
      Returns:
      ContainsOperator 常量之一,用于指定条件格式规则执行的文本搜索。
    • setTextOperator

      void setTextOperator(ContainsOperator 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);
       
      Parameters:
      value - ContainsOperator 常量之一,用于指定条件格式规则执行的文本搜索。不支持 null。
    • getType

      返回此条件格式的类型。

      返回的值是 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();
       
      Returns:
      此条件格式的类型。
    • delete

      void delete()
      删除此条件格式。

      使用此方法可从工作表中移除当前条件格式规则。

      
       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();
       
    • setFirstPriority

      void setFirstPriority()
      将此条件格式规则的优先级值设置为 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();
       
    • setLastPriority

      void setLastPriority()
      设置此条件格式规则的计算顺序,使其在工作表上的所有其他规则之后计算。

      使用此方法可将当前规则移动到工作表上条件格式规则中的最低计算优先级。

      
       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();
       
    • fromJson

      void fromJson(String json)
      从 JSON 字符串生成条件格式。

      使用此方法可从 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());
       
      Parameters:
      json - 定义条件格式的 JSON 字符串。
    • toJson

      String toJson()
      生成一个从条件格式转换而来的 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();
       
      Returns:
      条件格式的 JSON 字符串。