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

SortFieldBase

Class SortFieldBase

java.lang.Object
com.grapecity.documents.excel.SortFieldBase
All Implemented Interfaces:
ISortField
Direct Known Subclasses:
CellColorSortField, FontColorSortField, IconSortField, ValueSortField

public abstract class SortFieldBase extends Object implements ISortField
表示排序字段的抽象基类。

此类为工作表排序提供 ISortField 的通用实现。它封装具体排序字段类型所使用的共享排序元数据,包括键区域、多键排序中的排序优先级,以及由 ISortField.getSortOn() 指定的条件。

定义值、单元格填充颜色、字体颜色或图标的排序行为时,请使用其具体子类之一。此类型的实例通常作为排序定义的一部分进行管理,而不是直接实例化。

  • Constructor Details

    • SortFieldBase

      public SortFieldBase()
  • Method Details

    • getKey

      public final IRange getKey()
      获取用作排序键的区域。

      返回分配给此排序字段的 IRange。此区域用于标识评估该字段排序顺序的单元格。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Name", "Score"},
           {"Tom", 80},
           {"Ada", 95},
           {"Ken", 88}
       });
       ISortField sortField = new ValueSortField(worksheet.getRange("B2:B4"), SortOrder.Ascending);
       IRange key = sortField.getKey();
       
      Specified by:
      getKey in interface ISortField
      Returns:
      作为此排序字段的排序键的区域。
    • getPriority

      public final int getPriority()
      获取此排序字段在多字段排序中的优先级。

      使用此属性可以确定多个排序字段一起使用时应用此排序字段的顺序。要更改优先级,请使用 setPriority(int)。

      
       worksheet.getRange("A1:C5").setValue(new Object[][] {
           {"Group", "Code", "Rank"},
           {2, "g", 30},
           {1, "z", 20},
           {1, "a", 10},
           {3, "b", 40}
       });
       ISort sort = worksheet.getSort();
       sort.setRange(worksheet.getRange("A1:C5"));
       sort.getSortFields().add(new ValueSortField(worksheet.getRange("A2:A5"), SortOrder.Ascending));
       ValueSortField sortField = new ValueSortField(worksheet.getRange("B2:B5"), SortOrder.Descending);
       sort.getSortFields().add(sortField);
       sortField.setPriority(1);
       int priority = sortField.getPriority();
       
      Specified by:
      getPriority in interface ISortField
      Returns:
      此排序字段在多字段排序中的优先级。
    • setPriority

      public final void setPriority(int value)
      设置此排序字段在多字段排序中的优先级。
      
       worksheet.getRange("A1:C5").setValue(new Object[][] {
           {"Group", "Code", "Rank"},
           {2, "g", 30},
           {1, "z", 20},
           {1, "a", 10},
           {3, "b", 40}
       });
       ISort sort = worksheet.getSort();
       sort.setRange(worksheet.getRange("A1:C5"));
       sort.getSortFields().add(new ValueSortField(worksheet.getRange("A2:A5"), SortOrder.Ascending));
       ValueSortField sortField = new ValueSortField(worksheet.getRange("B2:B5"), SortOrder.Descending);
       sort.getSortFields().add(sortField);
       sortField.setPriority(1);
       
      Specified by:
      setPriority in interface ISortField
      Parameters:
      value - 此排序字段在多字段排序中的优先级。
    • getSortOn

      public final SortOnType getSortOn()
      获取此排序字段使用的条件。

      返回值取决于具体的排序字段类型。ValueSortField 返回 SortOnType.Values,CellColorSortField 返回 SortOnType.CellColor,FontColorSortField 返回 SortOnType.FontColor,IconSortField 返回 SortOnType.CellIcon。

      
       worksheet.getRange("A1:A3").setValue(new Object[][] {
           {3}, {1}, {2}
       });
       SortFieldBase sortField = new ValueSortField(worksheet.getRange("A1:A3"), SortOrder.Ascending);
       SortOnType sortOn = sortField.getSortOn();
       
      Specified by:
      getSortOn in interface ISortField
      Returns:
      SortOnType,指定此排序字段是按值、单元格颜色、字体颜色还是图标排序。