我有一个类更新实时值:
class LiveUpdate():
def __init__(self):
self.x=0
self.t1 = threading.Thread(target=self._refresh_value)
self.t1.start()
def _refresh_value(self):
while True:
self.x=self.x+1
updater=LiveUpdate()
@xw.func
def return_live_x():
return updater.x
当我将return_live_x称为UDF时,如何让它在excel中连续返回1,2,3,4等?
答案 0 :(得分:0)
问题:...更多关于让UDF自动刷新excel中的值
如果Excel决定重新计算或按下按键以手动执行此操作,则会调用UDF。
不知道是否可以使用xlwings
在后台启动并运行Python脚本。
我可以想象下面的未经测试的代码:
注意:此代码可能导致Excel失效。
class LiveUpdate():
def __init__(self, wb):
self.wb = wb
...
def _refresh_value(self):
while True:
self.x += 1
self.wb.sheets[0].range('A1').value = self.x
time.sleep(1)
@xw.func
def start_LiveUpdate():
LiveUpdate(xw.Book.caller())
return 'started'