チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.XLS for Python»変換»Python で TXT ファイルを CSV に変換する方法
2026-11-11

PDF の表を Excel に取り込む:Python で書式ごと変換する方法

営業レポートや月次の実績表は PDF の形で回ってくることも多い一方で、集計や並べ替えは Excel の方が手早くできます。PDF の表をそのまま Excel へ移せれば、コピー & ペーストで組み立てる手間が省けます。

Spire.PDF for Python は、PDF を Excel(XLSX)形式として保存する機能を持っています。変換には 2 段階の作り込みがあり、まず「そのまま出力」し、必要に応じて XlsxLineLayoutOptions でレイアウトを細かく指定できるのが特徴です。

クイックナビゲーション


1. 基本の変換

シンプルな構成の PDF は、読み込んで保存するだけで Excel に変換されます。手順は次のとおりです。

  1. PdfDocument オブジェクトを作成する
  2. PdfDocument.LoadFromFile() で PDF を読み込む
  3. PdfDocument.SaveToFile() に FileFormat.XLSX を指定して保存する
  4. 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 の表を Excel に変換した結果

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

PDF から Excel への変換を実行したときのコンソール出力


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 日間の無料ライセンスを申請 できます。申請したライセンスを適用すると、作成したドキュメントをそのまま利用できます。

Read 1 times