Python Script для автоматизации обновления таблицы Excel - PullRequest
0 голосов
/ 02 июля 2018

Я хочу автоматически обновить файл Excel. В настоящее время мой код не является полностью удовлетворительным, потому что Excel каждый раз просит меня нажать кнопку «Отмена» или «ОК». У меня есть два листа в файле Excel.

Вот код Python:

import win32com.client as win32
Xlsx = win32.DispatchEx('Excel.Application')
Xlsx.DisplayAlerts = True
Xlsx.Visible = True
book = Xlsx.Workbooks.Open('C:/Test_Excel/Essai_1.xlsx')
# Refresh my two sheets
book.RefreshAll()
book.Save()
book.Close()
Xlsx.Quit()
del book
del Xlsx

Как автоматически обновить файл Excel, не задавая никаких вопросов в Excel.

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

refreshall () - это асинхронная функция, поэтому вам нужно дождаться ее завершения, прежде чем делать что-либо еще. Вы можете использовать Xlsx.CalculateUntilAsyncQueriesDone () для этого.

import win32com.client as win32
Xlsx = win32.DispatchEx('Excel.Application')
Xlsx.DisplayAlerts = True
Xlsx.Visible = True
book = Xlsx.Workbooks.Open('C:/Test_Excel/Essai_1.xlsx')
# Refresh my two sheets
book.RefreshAll()
Xlsx.CalculateUntilAsyncQueriesDone()# this will actually wait for the excel workbook to finish updating
book.Save()
book.Close()
Xlsx.Quit()
del book
del Xlsx
0 голосов
/ 02 июля 2018

Попробуйте установить Xlsx.DisplayAlerts = True на Xlsx.DisplayAlerts = False, что должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...