この記事の目標
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へ自動変換できることが分かった。


コメント