Невозможно использовать константы win32com для автоматизации PowerPoint

Я новичок в python, пытаюсь автоматизировать powerpoint с помощью win32com. Я не могу импортировать или использовать константы в своих сценариях. Я запустил makepy для создания библиотек. ниже приведены сообщения об ошибках и сценарий. Может кто-нибудь сказать мне, как импортировать константы?

Скрипт:

import win32com.client

Application    =win32com.client.gencache.EnsureDispatch("PowerPoint.Application")
Presentation = Application.Presentations.Add()
Base = Presentation.Slides.Add(1, ppLayoutBlank)

Сообщения об ошибках :

Traceback (последний последний вызов): файл «ppt.py», строка 14, в Base = Presentation.Slides.Add(1, ppLayoutBlank) NameError: имя «ppLayoutBlank» не определено


person Vasanth    schedule 13.08.2016    source источник
comment
попробуйте www.pptxbuilder.com, он автоматизирует ваши pptx   -  person Boosted_d16    schedule 10.03.2018


Ответы (2)


Выбранный вами метод INTEROP зависит от интерфейса приложения, к которому вы подключаетесь.

Не определено обычно означает, что такой переменной нет, но Python в таких случаях чаще вызывает NameError. Так что, что именно здесь происходит, немного неясно.

Итак, зависит от версии PPoint, как с ней общаться.

Я советую вам вместо этого использовать pywinauto и перейти к «brute_force», то есть эмулировать нажатия клавиш и/или щелчки и т. д. на правых кнопках, меню и т. д.

Потому что имена тысяч с меньшей вероятностью изменятся в разных версиях, чем COM-интерфейс.

Microsoft имеет неприятную привычку чуть-чуть менять интерфейс, после чего программа перестает работать.

Если вы хотите настаивать на win32com, вам придется прочитать документацию PPoint для конкретной версии (или версии Office) и для win32com для вашей версии Python.

Вы должны увидеть, следует ли вам запускать COM-клиент или есть какие-то другие настройки MS, которые вам нужно использовать.

person Dalen    schedule 13.08.2016

Я сейчас под Linux и не могу протестировать здесь, но попробуйте

import win32com.client.constants

... а затем найдите константы, определенные в этом модуле. См. также Как использовать win32com.client.constants с MS Word? .

person Dr. V    schedule 02.11.2016