#python #pywin32 #xlwings
#python #pywin32 #xlвинги
Вопрос:
У меня возникла проблема при попытке использовать pywin32
функцию API a в приложении 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
~AppDataRoamingPythonPython37site-packagesxlwings_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'
Что я делаю не так?
Ответ №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
в вашем вопросе.
Комментарии:
1. Большое вам спасибо! Я сходил с ума от этого! Это
ws
была просто опечатка, но все равно еще раз спасибо!