找回密码
 立即注册

QQ登录

只需一步,快速开始

FzcSuiY

注册会员

10

主题

39

帖子

149

积分

注册会员

积分
149
FzcSuiY
注册会员   /  发表于:2023-12-27 15:06  /   查看:728  /  回复:4
1金币
描述问题:有2个sheet页,sheet1里面有上千个公式,sheet2里面有几千行的数据,现在要在sheet2中删除筛选后的隐藏行,

问题1:因为筛选过的行不是连续或者范围的,目前是循环获取每行的visible判断的,这样有个风险是会把用户隐藏的行也给删除掉了。请问有没有方法能快速获取过滤掉的行然后删掉呢?
问题2:删除行多了页面会卡死.

最佳答案

查看完整内容

您好, 问题1: 可以用isRowFilterOut进行判断,参数为行索引 如果是被筛选掉的隐藏行,返回的是true,否则是false 问题2: 在删除行前后加上 suspendPaint/resumePaint 方法用于提升渲染性能,具体可参考学习指南相关介绍: https://demo.grapecity.com.cn/sp ... ook/painting/purejs

4 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-27 15:06:40
来自 2#
您好,
问题1:
可以用isRowFilterOut进行判断,参数为行索引
  1. sheet.isRowFilterOut(5);
复制代码
如果是被筛选掉的隐藏行,返回的是true,否则是false


问题2:
在删除行前后加上 suspendPaint/resumePaint 方法用于提升渲染性能,具体可参考学习指南相关介绍:
https://demo.grapecity.com.cn/sp ... ook/painting/purejs
回复 使用道具 举报
FzcSuiY
注册会员   /  发表于:2023-12-27 17:40:00
3#
Lynn.Dou 发表于 2023-12-27 16:33
您好,
问题1:
可以用isRowFilterOut进行判断,参数为行索引

问题1:可以解决是否是筛选的隐藏行,但是还是要逐行的去判断和删除对吗?
问题2:代码中已经加了,CPU一直是100%,怀疑是计算了公式?但是也这是了spread.options.calcOnDemand = true,另外15版本里面不能用spread.options.calculationMode = GC.Spread.Sheets.CalculationMode.manual;这个吗?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-28 09:26:38
4#
问题1:是的
问题2:请提供一个可复现的demo,我们实际验证看看,以便调研具体原因。
另,calculationMode是V16的新功能,V15并不支持。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-26 15:19:23
5#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
SpreadJS 17.0.8 | GcExcel 7.1.0 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部