前回までに、PythonでAI文章+グラフ付きのPDFレポートを作成しました。
今回はさらに進めて、データを表形式でPDFに挿入する方法をご紹介します。
ビジネスや報告書でよく使う「売上一覧」や「分析テーブル」などを自動出力できるようになります。
📦 必要なライブラリ
pip install fpdf2
📊 表データ付きPDF作成コード(Python)
from fpdf import FPDF
import datetime
# ダミーデータ(売上一覧)
headers = ["月", "売上(万円)", "利益率"]
data = [
["1月", "120", "30%"],
["2月", "150", "32%"],
["3月", "180", "35%"],
["4月", "220", "37%"],
]
# PDF初期化
pdf = FPDF()
pdf.add_page()
pdf.add_font("Arial", '', 'arial.ttf', uni=True) # 日本語フォント設定(必要に応じて変更)
pdf.set_font("Arial", size=12)
# タイトル
pdf.cell(200, 10, txt="【売上レポート】表形式データ", ln=True, align='L')
# 表の描画
line_height = 10
col_widths = [40, 50, 40]
# ヘッダー
pdf.set_fill_color(200, 200, 200)
for i, header in enumerate(headers):
pdf.cell(col_widths[i], line_height, header, border=1, fill=True)
pdf.ln(line_height)
# データ
for row in data:
for i, item in enumerate(row):
pdf.cell(col_widths[i], line_height, item, border=1)
pdf.ln(line_height)
# 保存
filename = f"report_table_{datetime.date.today()}.pdf"
pdf.output(filename)
print(f"✅ PDFレポート生成完了: {filename}")
📌 ポイント解説
- cell()関数で1セルずつ描画し、
ln()
で行を切り替え - border=1で表の枠線を表示
- 文字数や列の長さによって
col_widths
を調整可能
⚠️ 注意点
- 長い文字列は
multi_cell()
を使うと折り返せる - 行数が多い場合はページの高さをチェックして自動改ページ対応を検討
- 日本語使用時はUTF-8対応フォントが必要(fpdf2の最新機能を活用)
✅ まとめ
- PDF内に表データを整然と配置できる
- 報告資料や定期レポートで視認性が向上
- グラフ・文章・表が揃った完全自動レポートが可能に
▶️ 次回予告
Day24では、複数PDFページに自動で内容を分割・構成する方法を学びます。
長いレポートやプレゼン資料の分割にも対応できるようになります!
コメント