找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadjs666
金牌服务用户   /  发表于:2024-8-7 17:56  /   查看:373  /  回复:4
1金币
【v17】执行copyto页面卡死,如何拦截并恢复正常?
截屏2024-08-07 下午5.55.03.png

屏幕录制2024-08-07 下午5.55.18.mov

4.8 MB, 下载次数: 32

最佳答案

查看完整内容

您好,出现此报错的原因是:已经合并后的区域重复设置了合并区域。 建议在执行这行代码之前检查合并区域是否存在重叠的情况,如果重叠,就不要执行。 另外,出现此报错后并不是页面卡死,而是copyTo的底层代码为了提升渲染效率,执行了suspendPaint的接口,如果要强行修复,可以执行resumePaint来恢复,但是不能保证后续不会出现任何问题。

4 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-7 17:56:28
来自 2#
您好,出现此报错的原因是:已经合并后的区域重复设置了合并区域。

建议在执行这行代码之前检查合并区域是否存在重叠的情况,如果重叠,就不要执行。

另外,出现此报错后并不是页面卡死,而是copyTo的底层代码为了提升渲染效率,执行了suspendPaint的接口,如果要强行修复,可以执行resumePaint来恢复,但是不能保证后续不会出现任何问题。
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-8-8 10:54:54
3#
本帖最后由 spreadjs666 于 2024-8-8 11:04 编辑
Joestar.Xu 发表于 2024-8-8 10:38
您好,出现此报错的原因是:已经合并后的区域重复设置了合并区域。

建议在执行这行代码之前检查合并区域 ...

您好,这个问题在16版本是由框架拦截并传入到InvalidOperation进行处理的,但是17版本调用api却出现报错和页面卡死,因此是否应该由框架方进行拦截处理,并且在出现报错时恢复页面使用,否则其他用户使用该api也会出现同样问题。

并且该行代码在不涉及合并单元格的情况下即使范围重复也是可执行不报bug的,因此具体拦截的逻辑应该是什么呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-8-8 14:02:14
4#
您好,关于“这个问题在16版本是由框架拦截并传入到InvalidOperation进行处理的”的情况,我在16.2.6中未能复现:

QQ截图20240808105920.png705006103.png

“并且该行代码在不涉及合并单元格的情况下即使范围重复也是可执行不报bug的”,控制台中的报错信息为“操作将带来重复的合并效果”,也就是说您在尝试给已经存在合并的区域再次设置合并,在不涉及复制合并单元格的情况下就不会出现此报错(比如去掉CopyToOptions.span)。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-29 17:47:01
5#
您好!从跟帖信息了解到您的问题得到了有效的解答,那就结贴了。如有问题,欢迎继续发帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部