请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

甘苦绿茶

金牌服务用户

5

主题

19

帖子

82

积分

金牌服务用户

积分
82
甘苦绿茶
金牌服务用户   /  发表于:2025-3-13 15:43  /   查看:79  /  回复:7
image.png158524169.png

7 个回复

倒序浏览
Matthew.Xue
超级版主   /  发表于:2025-3-13 16:25:30
沙发
您好,这是正常的现象,workbook.suspendPaint其实是对workbook中一切需要绘制的部分做暂停绘制,其中其实包含了对每一个sheet去suspendPaint,而sheet.suspendPaint则是只对该sheet暂停绘制,所以sheet.resumePaint可以打开workbook.suspendPaint的暂停绘制。
一般来说,suspendPaint和resumePaint都是成对出现的,在业务逻辑代码的前后分别暂停和继续绘制,所以不应该出现您说的这种情况。请问您是在何种业务下需要用到这种处理方式呢?
回复 使用道具 举报
甘苦绿茶
金牌服务用户   /  发表于:2025-3-13 16:43:41
板凳
Untitled Project.gif
回复 使用道具 举报
Matthew.Xue
超级版主   /  发表于:2025-3-13 17:15:54
地板

您好,能解释一下吗?只看动图很难理解您想表达什么
回复 使用道具 举报
甘苦绿茶
金牌服务用户   /  发表于:2025-3-14 09:03:30
5#
疑问:
1、在 workbook 已经 suspendPaint 的情况下,再次执行 sheet.suspendPaint()、sheet.resumePaint() 方法时,图中显示的 “sheet.resumePaint() 耗时 30ms”情况是否是合理的?

我的使用场景:
很普通的多个方法调用,方法内部均使用 sheet.suspendPaint()、sheet.resumePaint() 进行包裹。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-3-14 11:32:38
6#
您好!如版主Matthew在2楼给您的回复,Workbook:suspendPaint()能够暂停Workbook内所有绘制动作,当然包括每个Worksheet,但是当某个Worksheet处理完成后,可以通过Worksheet:resumePaint()恢复自己的绘制动作完成绘制渲染。

如下动图所示,我们先暂停Workbook绘制,然后对Sheet2填充数据后仅对Sheet2恢复绘制,可以看到耗时38ms:
sheet恢复绘制.gif

综合来看,是正常现象。
回复 使用道具 举报
甘苦绿茶
金牌服务用户   /  发表于:2025-3-14 13:34:29
7#
Wilson.Zhang 发表于 2025-3-14 11:32
您好!如版主Matthew在2楼给您的回复,Workbook:suspendPaint()能够暂停Workbook内所有绘制动作,当然包括 ...

好的,没问题了,多谢!
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-3-14 15:10:12
8#
甘苦绿茶 发表于 2025-3-14 13:34
好的,没问题了,多谢!

好的,那就结贴了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部