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

ValueSortField

Class ValueSortField

java.lang.Object
com.grapecity.documents.excel.SortFieldBase
com.grapecity.documents.excel.ValueSortField
All Implemented Interfaces:
ISortField, IValueSortField

public class ValueSortField extends SortFieldBase implements IValueSortField
表示按单元格值对数据排序的排序字段。

使用此类可以定义按值进行的升序、降序或自定义值列表排序。ValueSortField 还允许通过 SortDataOption 控制排序期间如何处理文本值。


 worksheet.getRange("A1:A4").setValue(new Object[][] {
     {"10"},
     {"2"},
     {"30"},
     {"4"}
 });
 ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A4"), SortOrder.Ascending);
 sortField.setDataOption(SortDataOption.TextAsNumbers);
 
  • Constructor Details

    • ValueSortField

      public ValueSortField(IRange key)
      为指定的键区域创建值排序字段。排序顺序默认为升序。
      
       worksheet.getRange("A1:B4").setValue(new Object[][] {
           {2, "B"}, {1, "C"}, {1, "A"}, {3, "D"}
       });
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A4"));
       worksheet.getRange("A1:B4").sort(SortOrientation.Columns, false, sortField);
       
      Parameters:
      key - 提供用作排序键的值的区域。不得为 null。
    • ValueSortField

      public ValueSortField(IRange key, SortOrder order)
      为指定的键区域和排序顺序创建值排序字段。

      将此构造方法与 IRange.sort(SortOrientation,boolean,IValueSortField...) 一起使用,可按值对区域排序。

      
       IRange range = worksheet.getRange("A1:B4");
       range.setValue(new Object[][] {
           {2, "g"},
           {1, "z"},
           {1, "a"},
           {3, "b"}
       });
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A4"), SortOrder.Descending);
       range.sort(SortOrientation.Columns, false, sortField);
       
      Parameters:
      key - 提供用作排序键的值的区域。
      order - 要应用于键区域的排序顺序。
    • ValueSortField

      public ValueSortField(IRange key, String customValues)
      创建使用自定义排序列表的值排序字段。

      使用此构造方法可以按用户定义的值序列排序,而不是按普通的升序或降序排序。自定义列表字符串可以包含诸如 3,2,5,1 的值,或诸如 "\"High\", \"Medium\", \"Low\"" 的带引号文本项。

      
       worksheet.getRange("A1:B3").setValue(new Object[][] {
           {"Medium", "Review"},
           {"Low", "Archive"},
           {"High", "Deploy"}
       });
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A3"), "\"High\", \"Medium\", \"Low\"");
       worksheet.getRange("A1:B3").sort(SortOrientation.Columns, false, sortField);
       
      Parameters:
      key - 提供排序键的区域。
      customValues - 定义排序顺序的自定义列表字符串。
  • Method Details

    • getDataOption

      public final SortDataOption getDataOption()
      获取排序字段的数据选项。

      数据选项指定排序期间如何处理文本值,例如正常排序文本,或将文本按数字排序。使用 setDataOption(SortDataOption) 可以更改此设置。

      
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A2:A5"), SortOrder.Ascending);
       sortField.setDataOption(SortDataOption.TextAsNumbers);
       SortDataOption dataOption = sortField.getDataOption();
       
      Specified by:
      getDataOption in interface IValueSortField
      Returns:
      排序字段的数据选项。
    • setDataOption

      public final void setDataOption(SortDataOption value)
      设置排序字段的数据选项。

      使用此方法可以控制排序期间如何处理文本值。例如,SortDataOption.TextAsNumbers 会将文本值按数值数据排序。

      
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A2:A5"), SortOrder.Ascending);
       sortField.setDataOption(SortDataOption.TextAsNumbers);
       
      Specified by:
      setDataOption in interface IValueSortField
      Parameters:
      value - 要应用于排序字段的数据选项。
    • getOrder

      public final SortOrder getOrder()
      获取排序顺序。

      返回当前为此值排序字段配置的 SortOrder。使用 getCustomValues() 可以检查该字段是否配置了自定义值列表。

      
       worksheet.getRange("A1:A4").setValue(new Object[][] {{3}, {1}, {4}, {2}});
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A2"), SortOrder.Descending);
       SortOrder order = sortField.getOrder();
       
      Specified by:
      getOrder in interface IValueSortField
      Returns:
      此值排序字段的当前排序顺序。
    • setOrder

      public final void setOrder(SortOrder value)
      设置排序顺序。
      
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A1:A4"), SortOrder.Ascending);
       sortField.setOrder(SortOrder.Descending);
       SortOrder order = sortField.getOrder();
       
      Specified by:
      setOrder in interface IValueSortField
      Parameters:
      value - 排序顺序。
    • getCustomValues

      public final String getCustomValues()
      获取自定义值列表,例如 3,2,5,1。

      如果此属性不是空字符串,则排序顺序由自定义值列表确定。

      
       worksheet.getRange("A1:A5").setValue(new Object[][] {
           {"Value"},
           {3},
           {2},
           {5},
           {1}
       });
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A2:A5"), "3,2,5,1");
       String customValues = sortField.getCustomValues();
       
      Specified by:
      getCustomValues in interface IValueSortField
      Returns:
      自定义值列表字符串。如果未指定自定义排序值,则返回空字符串。
    • setCustomValues

      public final void setCustomValues(String value)
      设置自定义值列表,例如 3,2,5,1。

      如果此属性不是空字符串,则排序顺序由自定义值列表决定。

      
       worksheet.getRange("A1:A5").setValue(new Object[][] {
           {"Value"},
           {3},
           {2},
           {5},
           {1}
       });
       ValueSortField sortField = new ValueSortField(worksheet.getRange("A2:A5"), "3,2,5,1");
       sortField.setCustomValues("5,3,2,1");
       
      Specified by:
      setCustomValues in interface IValueSortField
      Parameters:
      value - 自定义值列表字符串。如果未指定自定义排序值,则设置为空字符串。