请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

shiguang

注册会员

9

主题

26

帖子

75

积分

注册会员

积分
75
shiguang
注册会员   /  发表于:2025-1-17 16:09  /   查看:108  /  回复:10
本帖最后由 Matthew.Xue 于 2025-1-21 16:03 编辑


问题编号:SJS-28102

spreadjs的筛选(hideRowFilter)的排序功能是对筛选范围的列进行排序,不再筛选范围内的列是不排序的,这个行为有点迷惑,加入页面有10列,我只对2,3列添加了筛选,(可能是为了性能考虑,不想把所有列都添加筛选),当我点击筛选按钮上的排序时,实际上只有2,3列的内容排序了,其他列的内容不变,导致数据错乱了,能把排序应用到所有列上么

10 个回复

倒序浏览
Matthew.Xue
超级版主   /  发表于:2025-1-17 16:54:34
沙发
您好!这块的逻辑SpreadJS是和Excel保持一致的,如果想让所有行都参与排序的话,建议通过代码开发来实现,思路如下:
1. 拦截RangeSorting事件,并通过arg.cancel = true取消排序
2. 根据参数获取所选区域的数据,并从参数中获取用户的排序方式,自行实现排序逻辑
3. 在最上方插入和当前数据量相同的行数
4. 通过moveTo接口按照自己的排序结果,改变行的位置,实现真实的全局排序效果

相关接口:
RangeSorting
AddRows
MoveTo

回复 使用道具 举报
shiguang
注册会员   /  发表于:2025-1-21 10:49:08
板凳
Matthew.Xue 发表于 2025-1-17 16:54
您好!这块的逻辑SpreadJS是和Excel保持一致的,如果想让所有行都参与排序的话,建议通过代码开发来实现, ...

现在版本的excel已经默认是按照行去排序了,不只是在筛选列里面排序
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-1-21 11:22:47
地板
shiguang 发表于 2025-1-21 10:49
现在版本的excel已经默认是按照行去排序了,不只是在筛选列里面排序

您好,我们这边需要和产品经理评估一下这个需求,请问您目前用的Excel版本号是多少呢?
回复 使用道具 举报
shiguang
注册会员   /  发表于:2025-1-21 13:31:51
5#
就是最新版的excel,排序会弹出这个,默认是按照行进行排序的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
shiguang
注册会员   /  发表于:2025-1-21 13:35:58
6#
另外想请教一个问题,点击排序按钮后,弹出来的条件窗口,会显示所选列的所有可以筛选的值,我现在一共加载了几十万条的数据,弹出来这个过程会卡顿2-3秒,我感觉像每次弹出的时候都会去计算一遍值列表,有没有什么办法做到只计算一次,后面直接显示,因为当前的数据有几列是不允许用户修改的,是不变的,只需计算一次就好。
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-1-21 16:17:20
7#
shiguang 发表于 2025-1-21 13:35
另外想请教一个问题,点击排序按钮后,弹出来的条件窗口,会显示所选列的所有可以筛选的值,我现在一共加载 ...

您好,您提到的第一个排序的问题我会和产品经理沟通。第二个弹框弹出过慢的问题,我查看了excel的逻辑,excel中如果筛选项超过一万,那么就不会展示所有的项目,只展示前一万项,所以速度会快一些,SpreadJS则会全部展示,所以慢一些,您如果觉得速度不可接受的话,可以考虑仅使用排序的功能,没有筛选项之后,速度会快很多。如果不想使用这种方式,还可以自己写排序的弹框,并使用我们的api接口完成排序



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
shiguang
注册会员   /  发表于:2025-1-21 16:29:29
8#
Matthew.Xue 发表于 2025-1-21 16:17
您好,您提到的第一个排序的问题我会和产品经理沟通。第二个弹框弹出过慢的问题,我查看了excel的逻辑,e ...

筛选功能是一定要用的,请问自己写弹窗有例子么
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-1-21 17:06:57
9#
shiguang 发表于 2025-1-21 16:29
筛选功能是一定要用的,请问自己写弹窗有例子么

自己写弹框这块其实主要分为两块,第一是要您自己实现弹框的ui和交互,第二就是对我们api的运用,这里有一个例子,但和您的场景有点不同,我们这里只是做了一个数字的区间筛选,但没有把这一列的所有值列出来供您筛选,您需要自行动态加上这些checkbox,并实现筛选的逻辑。
自定义筛选菜单 UI
RowFilter这块的api比较复杂,您可以参考demo中的使用方法,结合api文档来学习
addFilterItem
回复 使用道具 举报
shiguang
注册会员   /  发表于:2025-1-21 21:57:35
10#
Matthew.Xue 发表于 2025-1-21 17:06
自己写弹框这块其实主要分为两块,第一是要您自己实现弹框的ui和交互,第二就是对我们api的运用,这里有 ...

感谢回复,这个例子我看了,但是我感觉完全重写弹出框难度有点大,能单独重写获取筛选数据的模块么,其他的功能重用现有的。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部