Диалоговое окно открывается при выходе из XLSM, DisplayAlerts не работает - PullRequest
0 голосов
/ 31 января 2019

Когда приложение закрывается, появляется экран, если я хочу сохранить файл.Я не хочу сохранять файл и хочу, чтобы он автоматически закрывался.

Я думал, что DisplayAlerts = False сделает работу, но она не будет работать

if os.path.exists("file_name.xlsm"):
    xl=win32com.client.Dispatch("Excel.Application")
    xl.Workbooks.Open(os.path.abspath("file_name.xlsm"))
    xl.Application.Run("module.module")
    sht.range('A1').value = 11
    xl.DisplayAlerts = False 
    xl.Application.Quit() 
    del xl

1 Ответ

0 голосов
/ 03 февраля 2019

Из документации :

Если при использовании этого метода открыты несохраненные книги, Microsoft Excel отображает диалоговое окно с вопросом, хотите ли вы сохранить изменения.Вы можете предотвратить это, сохранив все книги перед использованием метода Quit или установив для свойства DisplayAlerts значение False .Если это свойство равно False , Microsoft Excel не отображает диалоговое окно при выходе из несохраненных книг;он завершает работу без их сохранения.

Если установить для свойства книги Сохранено для True без сохранения книги на диск, MicrosoftExcel выйдет без запроса сохранения книги.

То есть то, что вы делаете , должно работать, и действительно отлично работает в моем тестировании (просто открыв Excel черезCOM, установив xl.Visible в True, создав новую книгу, изменив ее и попытавшись закрыть приложение с DisplayAlerts и без False).

Отсюда вы можете попробоватьна

  • установите Saved на True для каждой открытой книги, как указано в документации, или
  • let Application.EnableEvents = False,

до выхода.

...