【Python×Excel】ファイル・シートを自動でPDFに変換する方法

Python

 

日常業務で使われるExcelファイルですが、
ときには「PDFに変換して送ってほしい」と頼まれることもありますよね。

そんなとき、Pythonを使えばExcelを自動でPDF化することができます。
しかも、毎回手作業で印刷→PDF保存…なんて面倒なことはもう必要ありません。

今回は、Windows環境限定にはなりますが、PythonでExcelファイルをPDFに変換する方法をご紹介します。




⬛︎こんなことができるようになる!

・PythonからExcelファイルを自動でPDF変換できる
・複数ファイルを一括でPDF化できる
・業務報告書や請求書のPDF化作業が一気にラクに!

⬛︎必要な準備

この方法では、Windows環境のExcelアプリ(Microsoft Excel)がインストールされている必要があります。

そのうえで、Pythonの「pywin32」というライブラリを使ってExcelを操作します。

【事前準備】

pip install pywin32

これで準備完了です!

⬛︎PythonでExcel→PDFに変換する基本コード

以下が、ExcelファイルをPDFとして保存する基本的なスクリプトです。

import win32com.client

# Excelアプリケーションを起動(バックグラウンド)
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = False  # 画面非表示で処理

# Excelファイルを開く
wb = excel.Workbooks.Open(r"C:\Users\ユーザー名\Desktop\sample.xlsx")#ここにExcelの入ったフォルダのパスを記入

# PDFとして保存
wb.ExportAsFixedFormat(0, r"C:\Users\ユーザー名\Desktop\sample.pdf")#ここにPDFの保存フォルダのパスを記入

# 閉じる
wb.Close(False)
excel.Quit()

⬛︎コードのポイントを解説!

  • Dispatch("Excel.Application")
    → WindowsにインストールされたExcelをPythonから起動
  • Open()
    → 指定したExcelファイルを開く
  • ExportAsFixedFormat(0, 出力パス)
    → PDFとして保存(「0」はPDF形式の指定)
  • Quit()
    → Excelを終了

では実行してみたいと思います。
今回はExcelというフォルダに3つファイルを用意しました。

 

こちらを実行すると・・・


無事、PDF化することができました!

⬛︎PDFを保存する場所を変更したいときは?

保存先は以下のように自由に設定できます:

wb.ExportAsFixedFormat(0, r"D:\Documents\レポート2024.pdf")

r"パス"のように 「r」付きの文字列 にしておくと、バックスラッシュのエスケープ処理を防げます。

⬛︎複数のExcelファイルをまとめてPDF化したいとき

フォルダ内の全Excelファイルを一括でPDFに変換することもできます。

import os
import win32com.client

folder = r"C:\Users\ユーザー名\Documents\Excels"
pdf_folder = r"C:\Users\ユーザー名\Documents\PDFs"

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = False

for file in os.listdir(folder):
    if file.endswith(".xlsx"):
        input_path = os.path.join(folder, file)
        output_path = os.path.join(pdf_folder, file.replace(".xlsx", ".pdf"))
        
        wb = excel.Workbooks.Open(input_path)
        wb.ExportAsFixedFormat(0, output_path)
        wb.Close(False)

excel.Quit()

⬛︎注意点と補足

  • Macではこの方法は使えません(pywin32はWindows専用)
  • ExcelがインストールされていないPCでは動作しません
  • 旧形式(.xls)は開けない場合があるため .xlsx を推奨します

⬛︎まとめ

Pythonを使えば、Excelを自動でPDFに変換する処理も一瞬です。

おすすめの活用例
・毎日の勤怠表や報告書のPDF保存
・請求書のExcel→PDF自動化
・複数ファイルの一括変換ツールの作成

面倒な「ファイルを開いて→名前をつけて→PDFとして保存」の作業は、Pythonに任せてしまいましょう!