Как обрабатывать аргументы ключевого слова VBA в pywin32?

У меня возникла проблема с попыткой использовать функцию API pywin32 в приложении xlwing для сохранения определенного диапазона в формате pdf:

import xlwings as sw

app  = xw.App(add_book=False, visible=False)
book = app.books.open(fullname=GERALAMINA,
                    update_links=True,
                    read_only=False,
                    ignore_read_only_recommended=True)

sht = book.sheets[0]
sht.range('A1:B10').api.ExportAsFixedFormat(
            Type                 = 0, # xlTypePDF
            FileName             = r'C:/some/path/filename.pdf',
            Quality              = 0, # xlQualityStandard
            IncludeDocProperties = True
        )

Я использовал ключевые слова в соответствии с документами VBA. Но получил следующую трассировку:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-66-dece9e682dc6> in print_lamina(self)
    345             FileName             = r'C:/some/path/filename.pdf',
    346             Quality              = 0, # xlQualityStandard
--> 347             IncludeDocProperties = True
    348         )
    349 

~\AppData\Roaming\Python\Python37\site-packages\xlwings\_xlwindows.py in __call__(self, *args, **kwargs)
     64         while True:
     65             try:
---> 66                 v = self.__method(*args, **kwargs)
     67                 if isinstance(v, (CDispatch, CoClassBaseClass, DispatchBaseClass)):
     68                     return COMRetryObjectWrapper(v)

TypeError: ExportAsFixedFormat() got an unexpected keyword argument 'FileName'

Что я делаю не так?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать это с IncludeDocProperties = 1, но IncludeDocProperties = True также работает в моем случае, смотрите здесь. Я попробовал ваш код, и в моем случае параметр FileName не работал. Я должен использовать Filename, не спрашивайте меня, почему. Вот код, который работает для меня:

import xlwings as xw

app  = xw.App(add_book=False, visible=False)
book = app.books.open(fullname=GERALAMINA,
                    update_links=True,
                    read_only=False,
                    ignore_read_only_recommended=True)

sht = book.sheets[0]
sht.range('A1:B10').api.ExportAsFixedFormat(
            Type                 = 0, # xlTypePDF
            Filename             = r'C:/some/path/filename.pdf',
            Quality              = 0, # xlQualityStandard
            IncludeDocProperties = 1
)

Кстати, это должно быть import xlwings as xw в вашем вопросе.

Большое спасибо! Я сходил с ума от этого! ws была просто опечатка, но все равно еще раз спасибо!

olenscki 11.12.2020 13:29

Другие вопросы по теме