У меня есть лист Excel, который имеет соединение для передачи данных с PowerQuery. Обычно я нажимал «Обновить все», чтобы обновить данные. Я хочу автоматизировать это и написал скрипт Python для этого.
Однако в Excel я нашел в окне «Свойства подключения» параметр «Обновить при открытии». Теперь, когда я открываю лист, автоматически запускается обновление и данные обновляются.
Из кода Python я открываю этот лист и вставляю команду режима сна, чтобы он ожидал 30 секунд, пока лист не обновится автоматически. После этого я звоню «Сохранить как», чтобы сохранить обновленный лист под другим именем.
Я использую код ниже:
import win32com.client
import time
# Start an instance of Excel
xlapp = win32com.client.DispatchEx("Excel.Application")
# Open the workbook in said instance of Excel
wb = xlapp.workbooks.open("test.xlsx")
# Optional, e.g. if you want to debug
# xlapp.Visible = True
time.sleep(30)
wb.SaveAs("New.xlsx")
# Quit
xlapp.Quit()
Я заметил, что даже после «Сохранить как» значения данных не обновляются. Если я открою Excel напрямую, без скрипта Python, обновление будет выполнено, а затем я вручную нажму кнопку Сохранить Это обновляет. Но с приведенным выше кодом, он не сохраняет обновленную версию.
Пожалуйста, сообщите.