Home » Python » python-pptxの使い方 » python-pptxで表・テーブル内の文字色を設定する

python-pptxで表・テーブル内の文字色を設定する

動作検証バージョン:64bit Windows 10 Pro + Python 3.8.0 + python-pptx 0.6.18

「python pptx テーブル 文字色」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

PowerPointファイルを作成・編集するPythonのライブラリpython-pptxを使って,
表(テーブル)内の文字色(フォントの色)を設定するには、どのようなコードを書けばいいのかを探していた方による検索かな、と推測しています。

[スポンサードリンク]

表内のマイナス値を赤色に設定するスクリプト

プレゼンテーションファイルに、何らかの数値データを含む表が存在するときに、先頭が「-」で始まるマイナスの値を赤色にするスクリプトを作ってみました。

import pptx
from pptx.dml.color import RGBColor

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

for cell in tbl.iter_cells():
    if cell.text.startswith('-'):
        par = cell.text_frame.paragraphs[0]
        par.font.color.rgb = RGBColor(255, 0, 0)

prs.save(r'C:\temp\samp_new.pptx')

先頭スライドの2つ目の図形に、表が存在するファイルをsamp_org.pptxとして用意し、C:\tempフォルダーに保存してから上記のスクリプトを実行してください。

表内のマイナス値の文字色が赤色に設定され、C:\tempフォルダーにsamp_new.pptxが作成されます。

スクリプトで行っている処理について

基本的なスクリプトの構造は、既にご紹介している表内文字列を取得するスクリプトとよく似ています。

表内の全セルを順番に取得し、
  for cell in tbl.iter_cells():

各セルの文字列が「-」で始まっているマイナス値の場合に、文字色を変更します。
      if cell.text.startswith('-'):
          par = cell.text_frame.paragraphs[0]
          par.font.color.rgb = RGBColor(255, 0, 0)

文字色を設定するためのオブジェクトの階層構造

表内の文字列を取得するだけなら、_Cell.textプロパティで済むのですが、文字色を取得・設定するためには、オブジェクトの深い階層を辿らなければなりません。

上記のスクリプトでは、
  _Cell
   └ TextFrame ← cell.text_frame.paragraphs[0]
     └ _Paragraph ← cell.text_frame.paragraphs[0]
       └ Font    ← par.font.color.rgb
        └ ColorFormat ← par.font.color.rgb
          └ RGBColor ← par.font.color.rgb
と階層を辿ってオブジェクトを取得しています。

最終更新日時:2020-10-15 16:54

[スポンサードリンク]

Home » Python » python-pptxの使い方 » python-pptxで表・テーブル内の文字色を設定する

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

検索


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

.