Python で、PDF 書込みといえば、reportlab や、pdfrw
を使うのだが、
Excel ファイルをPDFに変換する、Excel がファイル保存時にPDF保存できるように、
Python で、 Excel VBA を実行して Excel ファイルをPDF変換する方法がある。
当然、、
Windows 環境で動かす Python
という限定の方法だが。。。
Excel VBA を Python で実行するので、pywin32 をインストールして
win32com を使用する。
pywin32 · PyPI
pip install pywin32
(サンプル)
# -*- coding: UTF-8 -*- import win32com.client excel = win32com.client.Dispatch("Excel.Application") # 実行中、Excel は表示させない→ False excel.Visible = False try: wb = excel.Workbooks.Open("C:/temp/チケット一覧.xlsx") wb.Worksheets("Sheet1").Activate() wb.ActiveSheet.ExportAsFixedFormat(0, "C:/temp/チケット一覧.pdf" ) except: print('失敗') else: print('成功') finally: wb.Close() excel.Quit()
これは、
VBA https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbook.exportasfixedformat
の ActiveSheet.ExportAsFixedFormat を実行する
以下も、参考になる。。
pywin32からCOMを使ってExcelを操作する方法 - Python CaseStudy
欠点があって、ActiveSheet.ExportAsFixedFormat には、上書きすることができない。