営業レポートや月次の実績表は PDF の形で回ってくることも多い一方で、集計や並べ替えは Excel の方が手早くできます。PDF の表をそのまま Excel へ移せれば、コピー & ペーストで組み立てる手間が省けます。
Spire.PDF for Python は、PDF を Excel(XLSX)形式として保存する機能を持っています。変換には 2 段階の作り込みがあり、まず「そのまま出力」し、必要に応じて XlsxLineLayoutOptions でレイアウトを細かく指定できるのが特徴です。
クイックナビゲーション
1. 基本の変換
シンプルな構成の PDF は、読み込んで保存するだけで Excel に変換されます。手順は次のとおりです。
PdfDocumentオブジェクトを作成するPdfDocument.LoadFromFile()で PDF を読み込むPdfDocument.SaveToFile()にFileFormat.XLSXを指定して保存するPdfDocument.Close()でドキュメントを閉じる
from spire.pdf import *
# PDF ドキュメントを読み込む
pdf = PdfDocument()
pdf.LoadFromFile("月次営業レポート.pdf")
# Excel(XLSX)として保存する
pdf.SaveToFile("output.xlsx", FileFormat.XLSX)
# ドキュメントを閉じる
pdf.Close()
print("保存しました: output.xlsx")
print("ファイルサイズ:", os.path.getsize("output.xlsx"), "bytes")

この例では、PDF の 2 ページ(地域別売上実績と訪問件数一覧)が、それぞれ独立したワークシート Page1・Page2 として出力されました。既定では PDF の 1 ページが 1 つのシートに対応します。

2. レイアウト オプションで出力を調整する
複数行にわたるセルや長いテキストを含む PDF では、XlsxLineLayoutOptions を PdfConvertOptions.SetPdfToXlsxOptions() に渡して出力の挙動を指定できます。指定できる項目は次の 5 つです。
| パラメーター | 既定値 | 指定できること |
|---|---|---|
convertToMultipleSheet |
True |
PDF の各ページを別のシートにする |
rotatedText |
True |
PDF 内の回転テキストをその角度で出力する |
splitCell |
True |
複数行テキストのセルを複数の行に分割して出力する |
wrapText |
True |
Excel 側のセル内でテキストを折り返す |
overlapText |
False |
PDF 内で重なり合うテキストを出力に残す |
たとえば 2 行のテキストを入れた備考欄を「1 つのセルにまとめたい」場合は、splitCell を False にして保存します。
from spire.pdf import *
# PDF ドキュメントを読み込む
pdf = PdfDocument()
pdf.LoadFromFile("月次営業レポート.pdf")
# レイアウト オプションを指定する
# (convertToMultipleSheet, rotatedText, splitCell, wrapText, overlapText)
options = XlsxLineLayoutOptions(True, True, False, True, False)
pdf.ConvertOptions.SetPdfToXlsxOptions(options)
# Excel(XLSX)として保存する
pdf.SaveToFile("options.xlsx", FileFormat.XLSX)
# ドキュメントを閉じる
pdf.Close()
print("保存しました: options.xlsx")

既定では、備考欄の 2 行テキストがそれぞれ独立した行に出力されるのに対し、splitCell=False を指定すると、同じ場所が 1 つのセルにまとめて出力されます。Excel の操作で並べ替えや抽出を続けたい場合は、行をまとめておく方が扱いやすいケースもあります。
まとめ
PDF から Excel への出力は、PdfDocument.LoadFromFile() で読み込んで FileFormat.XLSX を指定して保存するだけです。既定の変換では PDF の各ページが 1 つのシートになり、セルの背景色はそのまま残ります。出力の粒度を整えたい場合は XlsxLineLayoutOptions の 5 つのパラメーターで、ページとシートの対応・多行セルの分割・折り返しなどを指定できます。
FAQ
Excel 以外の形式でも出力できますか?
できます。FileFormat を変更すると、PDF から Word(DOCX)や画像などへの出力も同じ SaveToFile() の流れで行えます。
出力される Excel のバージョンは?
XLSX 形式(Excel 2007 以降)で保存されます。
表の背景色やセルの結合も保持されますか?
保持されます。サンプルで使用した表は、ヘッダー行の背景色が Excel のセル背景として出力されています。
PDF から特定の表だけを取り出したい場合は?
表の抽出は Python で PDF から表を抽出する方法 で解説しています。取り出したデータを Excel へ組み立てる場合は、Excel 側のライブラリと組み合わせて利用できます。
変換は Microsoft Excel 本体を必要としますか?
必要ありません。PDF の解析から XLSX の保存まで、すべて Python のライブラリ内で完結します。
ライセンスの案内
全機能を評価したい場合は、30 日間の無料ライセンスを申請 できます。申請したライセンスを適用すると、作成したドキュメントをそのまま利用できます。






