PythonでPowerPointのスライドを作成する方法のメモです.

目次

  1. インストール
  2. インポート
  3. プレゼンテーションの作成と保存
  4. タイトル
  5. 箇条書き
  6. グラフの作成

インストール

python-pptxpipでインストールします.

pip install python-pptx

インポート

Pythonのスクリプトでは,pptxモジュールからPresentationクラスをインポートします.

from pptx import Presentation

プレゼンテーションの作成と保存

はじめに,プレゼンテーションを作成します.
プレゼンテーションは変数prsに格納することにしましょう.

prs = Presentation()

このプレゼンテーションを保存するにはsaveメソッドを使います.

prs.save('test.pptx')

saveメソッドにより,カレントディレクトリにtest.pptxが保存されました.

タイトル

プレゼンテーションにスライドを追加するには,add_slideメソッドを使います.

slide = prs.slides.add_slide(prs.slide_layouts[0])

メソッドの引数でレイアウトを指定しており,できあがった(雛形通りでまだ何も入力されていない)スライドをslideという変数に格納しました.
レイアウトについては,適宜公式をご覧ください.

スライドのタイトルとサブタイトルは次のようにして与えることができます.

slide.shapes.title.text = "タイトル"
slide.placeholders[1].text = "サブタイトル"

箇条書き

今度は別のレイアウトでスライドを作成してみましょう.

slide = prs.slides.add_slide(prs.slide_layouts[1])

再び,適当なタイトルを与えておきます.

slide.shapes.title.text = 'タイトル'

このスライドにはテキストフレームがあり,次のように操作します.

tf = slide.shapes.placeholders[1].text_frame
tf.text = 'テキストフレーム内の文章'

テキストフレームの中で文章構造を分割したい場合,段落や箇条書きを次のように作成することができます.

p = tf.add_paragraph()
p.text = '箇条書き深さ1テキスト'
p.level = 1

p = tf.add_paragraph()
p.text = '箇条書き深さ2テキスト'
p.level = 2

p = tf.add_paragraph()
p.text = '箇条書きを終えたテキスト'
p.level = 0

グラフの作成

データからグラフを直接作成するには,若干の準備が必要です.
以下は,サンプルです.

from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Inches

slide = prs.slides.add_slide(prs.slide_layouts[5])

# 入力値
chart_data = ChartData()
chart_data.categories = ['項目1', '項目2', '項目3']
chart_data.add_series('系列1', (12, 21, 18))

# 表の挿入
x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
slide.shapes.add_chart(
XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
)

グラフに関するより詳細な例は,公式ドキュメントで眺めることができます.
python-pptxではグラフだけでなく,表やノートなども作成することができ,イメージ等の挿入も行うことができます.