ExcelをPDFに自動変換 ~PyWin32~

Python
この記事は約2分で読めます。

この記事の目標

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

コメント

タイトルとURLをコピーしました