python < – > excel:ScreenUpdating使表单闪烁
在我的Python代码中,我将ScreenUpdating设置为False,然后将数据写入工作表,之后将其设置为True。 一旦ScreenUpdating设置为True,表格会闪烁。
代码片段:
self.xlsApp.ScreenUpdating = False #Write some data here to excel sheet self.xlsApp.ScreenUpdating = True
我希望摆脱这种闪烁,但仍然使用ScreenUpdating。
有任何想法吗??
问候,奥马尔。
如果设置ScreenUpdating=true
则某些(如果不是全部)Excel版本完全重绘自己。 我想,没有什么可以做的。
但是,您可以将ScreenUpdating
设置为false
并且true
有条件的。 通常情况下,执行代码只是有时(或很less) 真正改变数据。 因此,如果您在代码中执行的工作表更新只是偶尔确实进行了更新,则可以将标志初始化为false
,然后将ScreenUpdating
设置为false
并且仅当代码确实进行更新时将标志设置为true
。 作为更新之后的最后一步,只有在标志被设置的情况下,才将ScreenUpdating
设置为true
。
这样,只有真正发生数据更改的情况才能看到闪烁。 这已经足以摆脱大部分时间的闪烁效应。
为了完全避免闪烁,可以尝试使用Windows API函数lockingExcel窗口的内部,按照概述执行代码,然后解除locking。 这仍然会产生闪烁的效果,但无形中,因为重绘过程不显示。 解锁后,重画仍然占位, 但不会清除具有背景色的矩形区域 。