Я пытаюсь открыть, обновить и запустить файл Excel из приложения Python Dash, основываясь на вводе, который может выбрать пользователь.
Приложение пытается получить доступ к Excel и обновить определенные поля (используя xlwings), а затем вычислить модель и использовать результаты этих расчетов для построения некоторых графиков.
У меня есть поля ввода, а затем я пытаюсь сделать обратный вызов, открыть и превзойти (я пытался сделать это как в обратном вызове, так и в начале приложения, оба приводят к одной и той же ошибке).
Код ниже показывает, что именно я делаю. Приложение работает без ошибок, но я сталкиваюсь с ошибкой во время выполнения, что CoInitilize не был инициирован.
pywintypes.com_error: (-2147221008, 'CoInitialize не был вызван.', Нет, Нет)
Я пытался запустить другой поток для Excel, но не мог заставить его работать вообще.
@app.callback(
Output('output-container', 'children'),
[Input('button', 'n_clicks')],
[dash.dependencies.State('my-input', 'value')]
)
def update_output(n_clicks, value):
fpath = 'file_xlsx.xlsx'
app = xw.App(visible=True)
wb = xw.Book(fpath)
flexible_inputs = wb.sheets['Inputs']
flexible_inputs.range('F4').value = value
new_value = value
return 'Success in changing the value of F4 Flexible Inputs to "{}"'.format(new_value)
Буду признателен за любую помощь (также если у вас есть другая идея, как заставить приложение Dash обновлять Excel).