Как дождаться, пока Excel вычислит формулу в xlwings?

#python-3.x #excel #xlwings

Вопрос:

Я представляю формулу в Excel, и мне нужно подождать, пока формула не вернет список значений.

 import xlwings as xw
import pandas as pd

wb = xw.Book()  
wb.sheets['Sheet1'].range('A1').value = formula

#  wait until the formula return some data

#  ...

# read data as dataframe

df = wb.sheets['Sheet1'].range('A1').expand().options(pd.DataFrame).value
 

Ответ №1:

API Excel имеет свойство CalculationState. Пример — использует модуль времени из стандартной библиотеки:

 while wb.app.api.CalculationState != xlwings.constants.CalculationState.xlDone:
    time.sleep(0.1)
 

Комментарии:

1. Большое спасибо за ваш ответ, но он не работает. Мне нужно подождать, пока одна формула, которая устанавливает соединение с сервером, не вернет некоторые данные.