Build PowerPoint presentation from template(pptx) and model(json) data like other template engines
pptx-template は pptx のテンプレートを元に、別途用意した JSON 中の文字列や CSV データを差し込んだ pptx を生成するツールです。
定型レポートなどで大量のグラフ付きスライドを作成する際の作業を代行してくれます。
TBD
$ pip install pptx-template
$ echo '{ "slides": [ { "greeting" : "Hello!!" } ] }' > model.json
# prepare your template file (test.pptx) which contains "{greeting}" in somewhere
$ pptx-template --out out.pptx --template test.pptx --model model.json
pyenvをインストールしておく
git clone https://github.com/m3dev/pptx-template.git
pyenv install 3.7.1 # Pythonをインストール
pyenv shell 3.7.1 # シェルで使うPython
venv .venv # 開発用の仮想環境を作成
source .venv/bin/activate # 仮想環境を使用する
python setup.py develop # パッケージを開発用にインストール&依存パッケージをインストール
pip install -r requirements.txt # 開発用のパッケージをインストール
pythonのREPLを起動
cd {プロジェクトフォルダ}
pyenv shell 3.7.1
python
REPL内で実行
import sys
from importlib import reload
import pptx_template.cli as cli
## 実行引数設定
## sys.argv = ['{pyファイル名}', '--out', '{出力pptxファイルパス}', '--template', '{テンプレートpptxファイルパス}', '--model', '{設定xlsxファイルパス}', '--debug']
## 以下の設定でテストファイルにて実行できます
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()
## pptx_template --out {出力pptxファイルパス} --template {テンプレートpptxファイルパス} --model {設定xlsxファイルパス} --debug
pptx_template --out test/data3/out.pptx --template test/data3/in.pptx --model test/data3/in.xlsx --debug
pytest
pip install wheel
pip install twine
python setup.py bdist_wheel
twine upload dist/*