pptx-template は pptx のテンプレートを元に、別途用意した JSON 中の文字列や CSV データを差し込んだ pptx を生成するツールです。
定型レポートなどで大量のグラフ付きスライドを作成する際の作業を代行してくれます。
- テンプレートには "{sales.0.june.us}" のような形で JSON内の値を指す id を記入できます
- Python 3.10+, pandas, python-pptx に依存しています
- 扱う json や csv の 文字コードは utf-8 前提です
pip install pptx-template
echo '{ "slides": [ { "greeting" : "Hello!!" } ] }' > model.json
# "{greeting}" を含むテンプレートファイル (test.pptx) を用意してください
pptx_template --out out.pptx --template test.pptx --model model.json- Python 3.10, 3.11, 3.12, または 3.13
- uv(推奨)または pip
git clone https://github.com/m3dev/pptx-template.git
cd pptx-template
# uvを使う場合(推奨)
uv sync --extra dev
# pipを使う場合
pip install -e ".[dev]"# uvを使う場合
uv run --extra dev pytest
# 特定のPythonバージョンで実行
uv run --python 3.13 --extra dev pytest
# pip インストール後
pytest# uvを使う場合
uv run pptx_template \
--template test/data3/in.pptx \
--model test/data3/in.xlsx \
--out test/data3/out.pptx \
--debug
# pip インストール後
pptx_template \
--template test/data3/in.pptx \
--model test/data3/in.xlsx \
--out test/data3/out.pptx \
--debuguv run pythonimport sys
from importlib import reload
import pptx_template.cli as cli
# 実行引数設定
sys.argv = ['dummy.py', '--out', 'test/data3/out.pptx', '--template', 'test/data3/in.pptx', '--model', 'test/data3/in.xlsx', '--debug']
# 実行
cli.main()
# ソースコード変更後、リロードして再実行
reload(sys.modules.get('pptx_template.xlsx_model'))
reload(sys.modules.get('pptx_template.text'))
reload(sys.modules.get('pptx_template.table'))
reload(sys.modules.get('pptx_template.chart'))
reload(sys.modules.get('pptx_template.core'))
reload(sys.modules.get('pptx_template.cli'))
cli.main()- featureブランチを作成する
- 実装する
- 全Pythonバージョン(3.10, 3.11, 3.12, 3.13)でテストを実行する
- pushする
- GitHub上でPull Requestを作成する
- コードレビューを依頼する
- QAを実施する
- Pull Requestをマージする
- PyPIにアップロードする(PyPIのリポジトリ管理者のみ可)
# ビルド
uv build
# PyPIにアップロード
uv publish
