既存のPowerPointファイルからテキスト(文字列)を取得する場合、PowerPoint VBAよりもpython-pptxのほうが、シンプルなコードで済むことを実感しています。
表内の文字列取得も、python-pptxのほうがPowerPoint VBAよりシンプルに書けます。
表内テキストを出力するサンプル
先頭スライドの2つ目の図形に表を作成し、Cドライブのtempフォルダーにfoo.pptxとして保存してから、以下のスクリプトを実行すると、表内文字列が出力されます。
prs = pptx.Presentation(r'C:\temp\foo.pptx')
tbl = prs.slides[0].shapes[1].table
print(cell.text)
Table.iter_cellが便利
Tableオブジェクトに用意されているiter_cellメソッドが便利です。
PowerPoint VBAで表の各セルを取得するには、2重ループにしなければなりませんが、python-pptxのTable.iter_cellメソッドを使えば、左から右、上から下の順に、順番に各セルを取得できます。
python-pptxではセル内テキストの取得も簡単
PowerPoint VBAの場合、セルを表すCellオブジェクトの中にShapeオブジェクトが存在し、Shape内のテキストを取得する一般的な階層 Shape - TextFrame - TextRange - Text を辿らないと、セル内文字列を取得できません。
これに対しpython-pptxでは、_Cellオブジェクトのtext属性でセル内文字列を取得できてしまいます。
最終更新日時:2020-12-23 10:38
Home » Python » python-pptxの使い方 » python-pptxなら表内テキストを2重ループを使わず取得できる