この記事の目標
Excelで作成した複数文書をPDFに変換することが最近よくある。手動でやるのが面倒なのでPythonで自動変換できるようにしてみた。
サンプルプログラム
入力フォルダ直下に配置したExcelファイルを、出力フォルダ直下にPDFファイルとして変換するプログラムである。
ファイル名は単純に[ファイル名].xlsxを[ファイル名].pdfとなるようにしている。
import win32com.client import glob import os if __name__ == '__main__': # フォルダ配下のExcelファイルをPDFに変換 excel = win32com.client.Dispatch("Excel.Application") for f in glob.glob('[入力フォルダ]\\*'): fileName = os.path.basename(f) fileNameWithoutExt = os.path.splitext(fileName)[0] file = excel.Workbooks.Open(f) file.ActiveSheet\ .ExportAsFixedFormat(0, '[出力フォルダ]\\' + fileNameWithoutExt) file.Close()
実行結果
PDF変換後のページ数は、Excelで指定した印刷範囲に従う。
印刷範囲が2ページにまたがるExcel
印刷範囲が2ページにまたがったExcelをPDFに変換すると、PDFも2ページにまたがる。
印刷範囲が1ページに収まるExcel
一方、印刷範囲が1ページに収まるExcelをPDFに変換すると、PDFも1ページに収まる。
まとめ
印刷範囲を適切に設定しておけば、ExcelをきれいにPDFへ自動変換できることが分かった。
コメント