Как я могу уверенно установить атрибуты отправляемых объектов с помощью win32com
Я изо всех сил пытался назначить атрибут для объекта (или это экземпляр)
xl=win32com.client.Dispatch('Excel.Application')
xl.Visible=0
srce=xl.Workbooks.Open('myexcelfile')
srce.CheckCompatibility='False'
Если я запрашиваю у объекта srce его атрибут CheckCompatibility, я получаю ответ "False"
>>> srce.CheckCompatibility
False
Так что я наивно думаю, что могу сохранить это в любом случае, если захочу
srce.SaveAs(r'c:\newtttxt14.xls',FileFormat=1)
Но когда я это сделаю, появится диалог проверки совместимости. Я нажимаю продолжить, файл сохраняется, и я снова проверяю совместимость.
>>> srce.CheckCompatibility
True
So I again try to set it and this time I am successful
srce.CheckCompatibility='False'
Я запрашиваю это еще раз:
>>> srce.CheckCompatibility
False
Теперь, когда я пытаюсь сохранить файл, диалог проверки совместимости не появляется, файл сохраняется точно так, как я хочу.
Мне нужна определенная уверенность в возможности установить атрибут srce, прежде чем я попытаюсь сохранить файл в другом формате - может ли это произойти каким-либо другим способом?
Спасибо
1 ответ
Я не уверен, но я подозреваю, что происходит то, что сохранение файла в форме XLS сбрасывает значение CheckCompatibility
поскольку значением по умолчанию для этого свойства является True для двоичных книг Excel 97-2003.
In any case, there are multiple reasons why Excel might display a dialog when saving a file, not just the compatibility checker. I suspect what you really want is to suppress dialog boxes so that no user interactivity is required when your script saves a file. You can suppress dialog boxes by adding:
>>> xl.DisplayAlerts = False
до вашего звонка srce.SaveAs(...)
,