第6章 · 実例 1

月次報告書を CSV から Markdown + Marp で 30 秒で作る

第 05 章「事務処理を変える ── Officeから離れる現実的な道筋」の主張を裏付ける。

章のどの主張に対応するか

事務職の月次報告書作成: Word + Excel + PowerPoint で 3 時間 → Markdown + CSV + Marp で 30 分6 分の 1

(章本文「実例: 数字で見る」より)

実測 ── スクリプトのビルド時間は 約 8 秒(Markdown 生成 7 ms + HTML 6 秒

やること

  1. 入力: data/sales.csv(売上 30 件)+ data/expenses.csv(経費 13 件)
  2. 生成: build_report.py が pandas で集計して、表とコメントを埋め込んだ Marp フォーマット の Markdown 報告書 (out/report.md) を作る
  3. 配布: pandoc が同じ Markdown から:
    • HTML 版(社内 Wiki / メール添付用)
    • PDF 版(印刷 / 取引先送付用、A4 2 ページ)
  4. スライド: report.md に Marp フロントマターが付いているので、 marp report.md -o slides.pdfスライド版にもなる(別途 marp-cli)

make all 一発。

構成

example-1/
├── README.md
├── build_report.py        ── CSV → Markdown 報告書(pandas + str.format)
├── Makefile               ── 全工程
├── results.md
├── data/
│   ├── sales.csv          ── 入力(売上)
│   └── expenses.csv       ── 入力(経費)
└── out/
    ├── report.md          ── 生成された Markdown 報告書(Marp 互換)
    ├── report.html        ── HTML 配布版(TOC 付き)
    └── report.pdf         ── PDF 配布版(A4 2 ページ)

実行

pip install pandas weasyprint
sudo apt install pandoc fonts-noto-cjk
make clean && make all

なぜこれが「実例」になるのか

月次報告は事務職の月初定型業務。Word + Excel + PowerPoint だと:

  1. Excel で売上・経費を集計(30 分)
  2. 表と数字を Word にコピペ(20 分、書式調整で逆に時間が増える)
  3. グラフを Excel で作って Word に画像で貼る(20 分)
  4. 同じ内容を PowerPoint に書き直す(60 分)
  5. 数字が間違っていて 4 つのファイルを直す(30 分)

合計 3 時間。これが毎月 12 回。1 年で 36 時間

Markdown + Python だと:

  1. CSV を差し替えて make all
  2. 完了

1 分かからない。スクリプトは初回だけ Claude に書いてもらえばいい。 表の書式を直したいときも、build_report.py の Markdown テンプレを 1 行 直せば 12 ヶ月分にも遡及する。

しかも同じソースが HTML / PDF / Marp スライド に展開される。「Word の 表を PowerPoint に貼り直す」という事務作業そのものが消える。

これが章で言う「事務処理は AI でもやれる簡単な仕事になる」の最小実演。


計測結果 — 第 05 章 example-1

実行環境: Linux 6.18 / pandas 3.0 / pandoc 3.1 / WeasyPrint 68.1

ビルド時間

工程 コマンド 実測
CSV → Markdown 報告書 python3 build_report.py 7.1 ms
Markdown → HTML pandoc report.md -o report.html 6.1 s
Markdown → PDF weasyprint(html) → report.pdf 2.0 s
合計(make all) 約 8 秒

(初回 pandoc が遅いのは libtemplate の起動コスト。2 回目以降は数百 ms。)

章本文の「Office で 3 時間」と比べると 約 1,300 倍

出力サイズ

ファイル サイズ
data/sales.csv 836 B
data/expenses.csv 350 B
build_report.py 約 3.7 KB
out/report.md 1,687 B(91 行)
out/report.html 7,500 B
out/report.pdf 約 49 KB(A4 2 ページ)

入力 CSV(1.2 KB) → 配布物 PDF(49 KB)まで全部で 100 KB に満たない。 Excel の同等資料は典型的に数 MB。

生成された報告書(out/report.md)抜粋

---
marp: true
theme: default
paginate: true
---

# 2026 年 4 月度 月次報告
**期間: 2026-04**  会社: 株式会社 aiseed.dev

---

## 1. 概要

| 項目 | 金額 |
|------|------|
| 売上 | **579,800 円** |
| 経費 | 290,600 円 |
| 利益 | **289,200 円** |
| 利益率 | 49.9% |

---

## 2. 売上 — 地域別

| 地域 | 売上 |
|------|------|
| 東京 | 230,850 円 |
| 大阪 | 205,700 円 |
| 名古屋 | 143,250 円 |

```mermaid
pie title 地域別売上
    "東京" : 230850
    "大阪" : 205700
    "名古屋" : 143250

...


GitHub・Notion・VS Code はこのままレンダリング。Marp なら `marp report.md`
でスライド PDF に。pandoc なら HTML / DOCX / PDF / EPUB ── 何にでも展開できる。

## 来月の運用

```bash
# 1. 新しい CSV を data/ に入れる
cp ~/Downloads/2026-05-sales.csv data/sales.csv

# 2. 走らせる
make all

# 3. PDF が out/ に出る。終わり。

3 時間が 30 秒になる(初回は 8 秒、Python 起動コミ)。

「組織との接点」での扱い

組織が Word / Excel / PowerPoint を要求してくるなら、出口だけ pandoc で 変換すればいい:

pandoc out/report.md -o report.docx                # Word に
pandoc out/report.md -o report.pptx -t pptx        # PowerPoint に(可能)
libreoffice --convert-to xlsx data/sales.csv       # CSV → Excel

中身は Markdown / CSV のまま。入口と出口だけ変換層

再現手順

pip install pandas weasyprint
sudo apt install pandoc fonts-noto-cjk
make clean && make all

ファイル一覧

data/

out/

第6章「事務処理を変える ── Officeから離れる現実的な道筋」に戻る