找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-4 01:01  /   查看:1815  /  回复:0
本帖最后由 Clark.Pan 于 2023-5-4 01:02 编辑

SpreadJS的筛选操作与Excel有一些不一致的地方,这里的设计与Excel有一些出入,都是有一定的原因。本篇博客将告知有哪些不一致的地方,以及为什么设计上会与Excel有差异。

一,在线表格编辑器添加筛选的操作与Excel有出入。
SpreadJS的在线表格编辑器中,添加筛选时会在选取范围的上一行进行添加,如下图所示
image.png760989684.png
在Excel中,筛选按钮会在选中范围的第一行中进行添加:
image.png134928282.png

为什么会与Excel在设计上存在差异,理由如下:
SpreadJS是支持给一整行设置筛选的,筛选按钮会在行头显示,如下图所示:
1.操作是选中整行数据,然后点击筛选,由于SpreadJS添加筛选时会在选取范围的上一行进行添加,所以选中整行刚好在其上方添加筛选,也就是行头处。
image.png260823363.png
而Excel不支持这样的操作,SpreadJS如果设置筛选的方式跟Excel一样,那么筛选按钮将永远设置不到行头上(选中的第一行设置,那么就会设置在A1上)。
2.给选中区域设置筛选,选中区域后设置在其上一行更好理解,因为选中的就是筛选区域,按钮添加在他上面一行。而在Excel中,除非习惯了Excel的方式,如果一个初学者去设置将会不适应,因为需要选中筛选区域后外加它上面一行才行。
二、筛选后无法将值粘贴至筛选掉的行中。
具体可以参考这个帖子中的问题:
https://gcdn.grapecity.com.cn/fo ... =1&extra=#pid651557
这也是一个设计上的差异。
1.在Excel中,被过滤掉的行并不是真正不可见的,你可以调整它的大小,它不是一个真正隐藏行。例如下图所示:
Excel中筛选行可以被拖行宽拖出来。


而拖出来之后筛选按钮的条件仍然没有更新。
image.png550137328.png
如这几幅图所示,已经将7这行拖出来显示了,但是筛选按钮上7这一行还是被筛选掉的。不知道前因操作的人看到这样的结果就会感觉很奇怪。
所以SpreadJS中,UI无法调整筛选出的行的大小。它是一个真正的不可见行。
并且UI行为不应将数据设置到不可见范围。所以复制的时候被筛选行中粘贴不到内容。


当然,如果使用者想要粘贴的时候将数据跨过筛选行,这个需求是比较合理的,这时候可以通过SpreadJS中的设置
  1. spread.options.pasteSkipInvisibleRange=true;
复制代码
以此来实现粘贴时候跨过筛选结果。

0 个回复

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