日常業務で使われる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に任せてしまいましょう!