Pythonでpptx内のスライド内のタイトル、サブタイトルを編集する方法
今回はPythonでパワーポイントファイル(pptx)のスライド内のタイトル、サブタイトルを編集していきます。ライブラリとして、python-pptxを使用します。スライド内のタイトルを編集して資料作成を自動化していきましょう。例えばこんな方にお薦め
- 最近Pythonを使い始めて、どんなことができるか試してみたい
- 写真やグラフをパワポで見やすい形で整理しておきたい
- パワポで定型的で定期的な報告資料を求められてしまった、そして資料作成というルーチン作業が増えてしまった
今回のコード
import pptx from pptx.enum.text import PP_ALIGN import os cd = os.getcwd() prs = pptx.Presentation() slide = prs.slides.add_slide(prs.slide_layouts[0]) title = slide.shapes.title title.text = "Title text" title.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER subtitle = slide.placeholders[1] subtitle.text = "Subtitle text" prs.save(cd + '/test.pptx')上記のコードを実行すると、.pyファイルと同じディレクトリに"test.pptx" というパワポファイルができています。 ファイルを開くと次のようなレイアウトのファイルができています。今回はスライドレイアウト0を使いました。レイアウトについては過去記事のこちらを参照してください。レイアウト0 のスライドにあらかじめ用意されたタイトルとサブタイトルに指定したテキストが入力されていることがわかります。
コードの解説
それではコードの解説をしていきます。import pptx
pptxモジュールをインポートします。パワポを操作するのに使用します。from pptx.enum.text import PP_ALIGN
テーブル内のテキストの位置指定に使用します。import os
osモジュールをインポートします。現在のディレクトリを取得するのに使用します。cd = os.getcwd()
cd変数に現在のディレクトリを格納します。prs = pptx.Presentation()
pptx.Presentation() をprsという変数で表します。以降、毎回pptx.Presentation と記述しなくてもprsと書いて省略することができます。slide = prs.slides.add_slide(prs.slide_layouts[0])
全行で記述したパワポ prs にスライドを追加します。また、引数でスライドのレイアウトを指定しています。今回は白紙のレイアウト0を選択しています。レイアウトの解説についてはこちら(Pythonでpptxファイルを作成する方法)を参照してください。title = slide.shapes.title
スライド内のタイトルを指定します。title.text = "Title text"
指定したタイトルにテキスト"Title text" を入力します。title.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER
タイトルに入力した"Title text" のテキストを中央揃えにします。subtitle = slide.placeholders[1]
スライド内のプレースホルダ(サブタイトル)を指定します。subtitle.text = "Subtitle text"
指定したサブタイトルにテキスト"Subtitle text" を入力します。prs.save(cd + '/test.pptx')
prs.save() でこれまでのprsへの作業内容を保存します。開いてみると、上記で指定してきたスライド内の位置に"graph.png" が貼り付けられていることがわかります。