Home » Python » python-pptxの使い方 » python-pptxなら表内テキストを2重ループを使わず取得できる

python-pptxなら表内テキストを2重ループを使わず取得できる

動作検証バージョン:Windows 10 + Python 3.7.3 + python-pptx 0.6.18

既存のPowerPointファイルからテキスト(文字列)を取得する場合、PowerPoint VBAよりもpython-pptxのほうが、シンプルなコードで済むことを実感しています。

表内の文字列取得も、python-pptxのほうがPowerPoint VBAよりシンプルに書けます。

[スポンサードリンク]

表内テキストを出力するサンプル

先頭スライドの2つ目の図形に表を作成し、Cドライブのtempフォルダーにfoo.pptxとして保存してから、以下のスクリプトを実行すると、表内文字列が出力されます。

import pptx

prs = pptx.Presentation(r'C:\temp\foo.pptx')
tbl = prs.slides[0].shapes[1].table

for cell in tbl.iter_cells():
    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重ループを使わず取得できる

「python-pptxの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.