dexteryao 发表于 2020-6-2 09:17:20

SpreadJS自定义排序(中文排序)

本帖最后由 lynn512 于 2021-3-16 13:58 编辑

SpreadJS V13.1 支持了自定义排序方法,可以通过回调函数compareFunction来自定义排序比较的逻辑。
由此我们可以实现中文按照拼音排序,或者实现类似版本好的排序,比如1.1.10和12.1.0的比较


实现自定义排序有两种方法
1. 调用sortRange时,sortInfo中添加compareFunction回调
如:function pinyinCompare (obj1, obj2) {
    return obj1.toString().localeCompare(obj2.toString(), 'zh');
}
sheet.sortRange(1, 0, 8, 2, true, [
    {index:0, ascending:true, compareFunction: pinyinCompare},   //中文排序
]);
2. 在RangeSorting事件中注入
如:
function compareSize(value1, value2) {
   //...
   //return -1;
   //return 1;
   return 0;
}
sheet.bind(GC.Spread.Sheets.Events.RangeSorting, function (e, info) {
    //if(info.range is suited) {
      info.compareFunction = compareSize;// set the customize function.
    //}
});
两种方法只要根据使用场景选择即可。


页: [1]
查看完整版本: SpreadJS自定义排序(中文排序)