Pythonでpptxファイルにテーブルを追加する目的
今回はPythonでパワーポイントファイル(pptx)にテーブルを追加します。ライブラリとして、python-pptx を使用します。パワポにテーブルを追加することで資料作成の自動作成にぐっと近づくのではないかと思います。
例えばこんな方にお薦め
- 最近Pythonを使い始めて、どんなことができるか試してみたい
- 写真やグラフをパワポで見やすい形で整理しておきたい
- パワポで定型的で定期的な報告資料を求められてしまった、そして資料作成というルーチン作業が増えてしまった
前準備として、python-pptxライブラリのインストールを済ませておきます。説明には下記のコードを使います。
今回のコード
import pptx from pptx.util import Inches import os cd = os.getcwd() prs = pptx.Presentation() slide = prs.slides.add_slide(prs.slide_layouts[6]) row_num = 2 col_num = 3 left = Inches(1) top = Inches(1) width = Inches(7) height = Inches(1) table = slide.shapes.add_table(row_num, col_num, left, top, width, height).table prs.save(cd + '/test.pptx')
上記のコードを実行すると、.pyファイルと同じディレクトリに"test.pptx" というパワポファイルができています。
ファイルを開くと次のようなレイアウトのファイルができています。2行3列のテーブルができているのがわかります。
コードの解説
それではコードの解説をしていきます。
import pptx
pptxモジュールをインポートします。パワポを操作するのに使用します。
from pptx.util import Inches
Inchesモジュールをインポートします。パワポ内の長さを扱うのに使用します。
import os
osモジュールをインポートします。現在のディレクトリを取得するのに使用します。
cd = os.getcwd()
cd変数に現在のディレクトリを格納します。
prs = pptx.Presentation()
pptx.Presentation() をprsという変数で表します。以降、毎回pptx.Presentation と記述しなくてもprsと書いて省略することができます。
slide = prs.slides.add_slide(prs.slide_layouts[6])
全行で記述したパワポ prs にスライドを追加します。また、引数でスライドのレイアウトを指定しています。今回は白紙のレイアウト6を選択しています。レイアウトの解説についてはこちら(Pythonでpptxファイルを作成する方法)を参照してください。
row_num = 2
テーブルの行数を指定します。ここでは2行としています。
col_num = 3
テーブルの列数を指定します。ここでは3列としています。
left = Inches(1)
テーブルの左端の位置を指定します。スライドの左からの距離を決めます。ここでは1インチとしています。
top = Inches(1)
テーブルの上端の位置を指定します。スライドの上からの距離を決めます。ここでは1インチとしています。
width = Inches(7)
テーブル全体の幅を指定します。ここでは7インチとしています。1列の幅はこの幅を列数で割った値になります。
height = Inches(1)
テーブル全体の高さを指定します。ここでは1インチとしています。1行の高さはこの高さを行数で割った値になります。
各変数にテーブルに使用する値を格納します。このとき、長さについての数値はInches()関数を使って入力します。
table = slide.shapes.add_table(row_num, col_num, left, top, width, height).table
作成したslide にテーブルを追加します。add_table() の引数に、設定したテーブルの値を入力しています。
prs.save(cd + '/test.pptx')
prs.save() でこれまでのprsへの作業内容を保存します。開いてみると、レイアウト0のスライドを持つパワポファイルtest.pptx が確かに作成されていることがわかります。テーブルの各パラメーターとの関係を確認してみてください。各パラメータの値を変えることでテーブルを好みの形に変えることができます。
まとめ
今回は、Pythonを使ってパワポファイルにテーブルを追加してみました。パワーポイントの資料にテーブルは欠かせないものだと思います。次回以降でテーブルの幅や高さ調整、値の入力をしていきたいと思います。