ExcelをPDF形式で保存する

フォルダ内のExcelファイルをPDF形式で保存するコード。

ExcelがインストールされているWindowsマシンで動作することが前提。

 

コマンドプロンプトから以下でライブラリをインストールする。

pip install comtypes

 

Pythonのコードは以下の通り。

pip install mtype

import os
import comtypes.client

# PDF変換関数
def excel_to_pdf(input_folder, output_folder):

    excel = comtypes.client.CreateObject("Excel.Application")
   
    # 対象のExcelファイルを取得する
    excel_files = [f for f in os.listdir(input_folder) if f.endswith('.xlsx')]

    # すべてのファイルが終わるまでループ

    for excel_file in excel_files:
        # Excelファイルのパスを構築
        excel_path = os.path.join(input_folder, excel_file)

        # 新しいワークブックを開く
        workbook = excel.Workbooks.Open(excel_path)

        # PDFの保存先ファイルパスを構築
        pdf_file = os.path.splitext(excel_file)[0] + '.pdf'
        pdf_path = os.path.join(output_folder, pdf_file)

        # PDF形式で保存する関数呼び出し
        save_as_pdf(workbook, pdf_path)

        # ワークブックを閉じる
        workbook.Close()

        # 進捗メッセージを表示
        print(f"変換完了: {excel_file} -> {pdf_file}")

    # Excelを終了
    excel.Quit()

# PDF形式で保存する関数
def save_as_pdf(workbook, pdf_path):
    # PDFの形式で保存
    xlTypePDF = 0
    workbook.ExportAsFixedFormat(xlTypePDF, pdf_path)

# メイン処理
if __name__ == "__main__":

    input_folder = "D:\lab\hoge"  # 入力Excelファイルがあるフォルダのパス
    output_folder = "D:\lab\hoge\output"  # 出力PDFファイルを保存するフォルダのパス

    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    excel_to_pdf(input_folder, output_folder)