Как я могу уверенно установить атрибуты отправленных объектов с помощью 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, прежде чем пытаться сохранить файл в другом формате - может ли это произойти каким-то другим способом?

Спасибо


person PyNEwbie    schedule 06.03.2011    source источник


Ответы (1)


Я не уверен, но я подозреваю, что происходит то, что сохранение файла в форме XLS сбрасывает значение CheckCompatibility, поскольку значение этого свойства по умолчанию равно True для двоичных книг Excel 97-2003.

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

>>> xl.DisplayAlerts = False

до вашего звонка srce.SaveAs(...).

person srgerg    schedule 06.03.2011