找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13536

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-2 09:17  /   查看:4577  /  回复:1
本帖最后由 lynn512 于 2021-3-16 13:58 编辑

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


实现自定义排序有两种方法
1. 调用sortRange时,sortInfo中添加compareFunction回调
如:
  1. function pinyinCompare (obj1, obj2) {
  2.     return obj1.toString().localeCompare(obj2.toString(), 'zh');
  3. }
  4. sheet.sortRange(1, 0, 8, 2, true, [
  5.     {index:0, ascending:true, compareFunction: pinyinCompare},   //中文排序
  6. ]);
复制代码

2. 在RangeSorting事件中注入
如:
  1. function compareSize(value1, value2) {
  2.      //...
  3.      //return -1;
  4.      //return 1;
  5.      return 0;
  6. }
  7. sheet.bind(GC.Spread.Sheets.Events.RangeSorting, function (e, info) {
  8.     //if(info.range is suited) {
  9.         info.compareFunction = compareSize;  // set the customize function.
  10.     //}
  11. });
复制代码

两种方法只要根据使用场景选择即可。


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部