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

ISort

Interface ISort


public interface ISort
表示排序设置。

提供对工作表或表的排序设置的访问,包括目标区域、区分大小写、方向、表头处理以及要应用的排序字段列表。使用 setRange(IRange) 定义要排序的单元格,通过 getSortFields() 配置字段,然后调用 apply() 执行排序。


 worksheet.getRange("A1:B4").setValue(new Object[][] {
     {"Name", "Score"},
     {"Tom", 80},
     {"alice", 95},
     {"Bob", 90}
 });
 ISort sort = worksheet.getSort();
 sort.getSortFields().add(new ValueSortField(worksheet.getRange("A2:A4"), SortOrder.Ascending));
 sort.setRange(worksheet.getRange("A1:B4"));
 sort.setHeader(true);
 sort.setMatchCase(true);
 sort.apply();
 
  • Method Details

    • getRange

      IRange getRange()
      获取排序区域。

      返回定义要排序单元格区域的 IRange 对象。

      
       ISort sort = worksheet.getSort();
       sort.setRange(worksheet.getRange("A1:B4"));
       IRange range = sort.getRange();
       
      Returns:
      用于排序的 IRange。
    • setRange

      void setRange(IRange value)
      设置排序区域。

      使用此方法可以在调用 apply() 之前指定当前排序操作应用到的工作表区域。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Name", "Score"},
           {"Tom", 88},
           {"Amy", 92},
           {"Bob", 75}
       });
       ISort sort = worksheet.getSort();
       sort.setRange(worksheet.getRange("A1:B4"));
       
      Parameters:
      value - 要排序的区域。
    • getMatchCase

      boolean getMatchCase()
      获取排序是否区分大小写。

      此属性指示应用排序时是否按字母大小写比较文本值。

      
       ISort sort = worksheet.getSort();
       sort.setMatchCase(true);
       boolean matchCase = sort.getMatchCase();
       
      Returns:
      如果排序区分大小写,则返回 true;否则返回 false。
    • setMatchCase

      void setMatchCase(boolean value)
      设置排序是否区分大小写。

      此属性指示应用排序时是否按字母大小写比较文本值。

      
       ISort sort = worksheet.getSort();
       sort.setMatchCase(true);
       
      Parameters:
      value - 如果排序区分大小写,则为 true;否则为 false。
    • getOrientation

      SortOrientation getOrientation()
      获取排序方向。

      排序方向确定排序操作是按列应用还是按行应用。

      
       worksheet.getSort().setRange(worksheet.getRange("A1:B4"));
       worksheet.getSort().setOrientation(SortOrientation.Columns);
       SortOrientation orientation = worksheet.getSort().getOrientation();
       
      Returns:
      当前排序方向,例如 SortOrientation.Columns 或 SortOrientation.Rows。
    • setOrientation

      void setOrientation(SortOrientation value)
      设置排序方向。

      使用 SortOrientation.Columns 按列排序,或使用 SortOrientation.Rows 按行排序。

      
       ISort sort = worksheet.getSort();
       sort.setOrientation(SortOrientation.Rows);
       
      Parameters:
      value - 排序方向。
    • getSortFields

      ISortFields getSortFields()
      获取 ISortFields 对象,该对象表示排序条件列表。

      返回定义此排序操作的排序键的 ISortFields 集合。可以使用返回的集合在调用 apply() 之前添加、移除或检查排序字段。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Name", "Score"},
           {"Alice", 90},
           {"Bob", 80},
           {"Carol", 95}
       });
       ISort sort = worksheet.getSort();
       sort.setRange(worksheet.getRange("A1:B4"));
       ISortFields sortFields = sort.getSortFields();
       sortFields.add(new ValueSortField(worksheet.getRange("B2:B4"), SortOrder.Descending));
       
      Returns:
      表示排序条件列表的 ISortFields 对象。
    • getHeader

      boolean getHeader()
      获取排序区域是否包含表头。

      使用此属性可以确定当前排序配置是否将排序区域中的第一行视为表头行。

      
       worksheet.getRange("A1:B3").setValue(new Object[][] {
           {"Name", "Score"},
           {"Alice", 100},
           {"Bob", 200}
       });
       ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
       boolean hasHeader = table.getSort().getHeader();
       
      Returns:
      如果排序区域包含表头行,则返回 true;否则返回 false。
    • setHeader

      void setHeader(boolean value)
      设置排序区域是否包含表头。

      使用此属性可设置排序配置是否将排序区域中的第一行视为表头行。

      
       worksheet.getRange("A1:B3").setValue(new Object[][] {
           {"Name", "Score"},
           {"Alice", 100},
           {"Bob", 200}
       });
       ITable table = worksheet.getTables().add(worksheet.getRange("A1:B3"), true);
       table.getSort().setHeader(true);
       
      Parameters:
      value - 如果排序区域包含表头行,则为 true;否则为 false。
    • apply

      void apply()
      将已配置的排序设置应用到当前区域。

      设置排序区域并添加所需排序字段后,调用此方法。如果 getHeader() 返回 true,则排序区域中的第一行会被视为表头行且不会移动。

      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {"Name", "Score"},
           {"Tom", 80},
           {"Amy", 95},
           {"Bob", 90}
       });
       ISort sort = worksheet.getSort();
       sort.getSortFields().add(new ValueSortField(worksheet.getRange("B2:B4"), SortOrder.Descending));
       sort.setRange(worksheet.getRange("A1:B4"));
       sort.setHeader(true);
       sort.apply();