本帖最后由 大Vi 于 2022-6-1 16:11 编辑
- const filter = new spreadNS.Filter.HideRowFilter(new spreadNS.Range(-1, -1, -1, -1))
- sheet.rowFilter(filter)
- filter.filterButtonVisible(false)
复制代码- const doFilter = (params: any) => {
- var filter = this.spread?.sheet.rowFilter()
- if (filter) {
- // filter.removeFilterItems(1)
- for (let key in params) {
- const colIndex = colInfos.findIndex(x => x.name === key)
- if (rest[key]) {
- const condition = getCondition(key, params[key])
- console.log(key, colIndex, condition)
- filter.addFilterItem(colIndex, condition)
- } else {
- filter.removeFilterItems(colIndex)
- }
- }
- filter.filter()
- spread?.sheet.invalidateLayout()
- spread?.sheet.repaint()
- }
- }
复制代码- const getCondition = (key: string, value: string) => {
- switch (key) {
- case "projectName":
- return new spreadNS.ConditionalFormatting.Condition(spreadNS.ConditionalFormatting.ConditionType.textCondition, {
- compareType: spreadNS.ConditionalFormatting.TextCompareType.contains,
- expected: `*${value}*`
- })
- case "category":
- case "implementationUnit":
- return new spreadNS.ConditionalFormatting.Condition(spreadNS.ConditionalFormatting.ConditionType.textCondition, {
- compareType: spreadNS.ConditionalFormatting.TextCompareType.equalsTo,
- expected: value
- })
- }
- }
复制代码
我是有三个筛选字段,分别对筛选第四、八、十三列的内容,而且只是筛选其中的某些行(5-10行,7-12行,9-14行)数据,其他行是合计行默认一直展示,不过滤,这个我怎么实现啊?官网都是一个字段筛选,没有多字段联合查询的示例。
|