找回密码
 立即注册

QQ登录

只需一步,快速开始

大Vi

中级会员

140

主题

309

帖子

975

积分

中级会员

积分
975
大Vi
中级会员   /  发表于:2022-6-1 16:02  /   查看:1267  /  回复:5
1金币
本帖最后由 大Vi 于 2022-6-1 16:11 编辑
  1. const filter = new spreadNS.Filter.HideRowFilter(new spreadNS.Range(-1, -1, -1, -1))
  2.             sheet.rowFilter(filter)
  3.             filter.filterButtonVisible(false)
复制代码
  1. const doFilter = (params: any) => {
  2.         var filter = this.spread?.sheet.rowFilter()
  3.         if (filter) {
  4.             // filter.removeFilterItems(1)
  5.             for (let key in params) {
  6.                 const colIndex = colInfos.findIndex(x => x.name === key)
  7.                 if (rest[key]) {
  8.                     const condition = getCondition(key, params[key])
  9.                     console.log(key, colIndex, condition)
  10.                     filter.addFilterItem(colIndex, condition)
  11.                 } else {
  12.                     filter.removeFilterItems(colIndex)
  13.                 }
  14.             }
  15.             filter.filter()
  16.             spread?.sheet.invalidateLayout()
  17.             spread?.sheet.repaint()
  18.         }
  19.     }
复制代码
  1. const getCondition = (key: string, value: string) => {
  2.         switch (key) {
  3.             case "projectName":
  4.                 return new spreadNS.ConditionalFormatting.Condition(spreadNS.ConditionalFormatting.ConditionType.textCondition, {
  5.                     compareType: spreadNS.ConditionalFormatting.TextCompareType.contains,
  6.                     expected: `*${value}*`
  7.                 })
  8.             case "category":
  9.             case "implementationUnit":
  10.                 return new spreadNS.ConditionalFormatting.Condition(spreadNS.ConditionalFormatting.ConditionType.textCondition, {
  11.                     compareType: spreadNS.ConditionalFormatting.TextCompareType.equalsTo,
  12.                     expected: value
  13.                 })
  14.         }
  15.     }
复制代码


我是有三个筛选字段,分别对筛选第四、八、十三列的内容,而且只是筛选其中的某些行(5-10行,7-12行,9-14行)数据,其他行是合计行默认一直展示,不过滤,这个我怎么实现啊?官网都是一个字段筛选,没有多字段联合查询的示例。

最佳答案

查看完整内容

请问你描述的联合筛选是指在多列进行筛选吗?如果是,可以参考附件的demo。 如果未能满足你的需求,请提供对应的表单,并详细描述需要实现的效果,这边来做进一步调研。

5 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-6-1 16:02:41
来自 2#
请问你描述的联合筛选是指在多列进行筛选吗?如果是,可以参考附件的demo。

如果未能满足你的需求,请提供对应的表单,并详细描述需要实现的效果,这边来做进一步调研。

多筛选条件.html

3.97 KB, 下载次数: 25

回复 使用道具 举报
大Vi
中级会员   /  发表于:2022-6-2 09:00:54
3#
Derrick.Jiao 发表于 2022-6-1 18:28
请问你描述的联合筛选是指在多列进行筛选吗?如果是,可以参考附件的demo。

如果未能满足你的需求,请提 ...

那如何只针对指定行进行过滤呢?  个别行是需要固定显示的,不需要被过滤掉
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-6-2 18:36:46
4#
大Vi 发表于 2022-6-2 09:00
那如何只针对指定行进行过滤呢?  个别行是需要固定显示的,不需要被过滤掉

如果是指定的行是连续的,那么将筛选区域调整为不包含指定行即可。
image.png30242308.png

如果是下面这种不连续的行,这种情况不支持。
image.png623009643.png

回复 使用道具 举报
大Vi
中级会员   /  发表于:2022-6-2 21:49:40
5#
Derrick.Jiao 发表于 2022-6-2 18:36
如果是指定的行是连续的,那么将筛选区域调整为不包含指定行即可。

我就是不连续的,有其他办法吗?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-6-6 11:11:53
6#
大Vi 发表于 2022-6-2 21:49
我就是不连续的,有其他办法吗?

如果是不连续的,目前没有太好的实现方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部