OpenPyXLでセル文字の書式(太字かどうか、イタリックかどうか…等)を判定したいです。
筆者環境
- Python 3.7.2
- OpenPyXL 2.6.2
リファレンスを見る
https://openpyxl.readthedocs.io/en/stable/styles.html#cell-styles より。
from openpyxl.styles import Font, Color
wb = Workbook()
ws = wb.active
a1 = ws['A1']
# 中略
a1.font.italic = True # is not allowed # doctest: +SKIP
これはws['A1']
をイタリック体に設定するコードのようです。しかし、逆にa1.font.italic
がTrue
かどうか判定するコードを書けば、ws['A1']
がイタリックかどうか判定できそうです。
イタリックの代わりに、__太字__bold の判定をやってみましょう。
実装
flag = ws['A1'].font.bold
または
flag = ws.cell(row=1, column=1).font.bold
これでよさげと思いきや、もしA1セルが太字ではなかったらこのflag
にはなんとFalse
ではなくNone
が入ります。False
にしたい場合は、素朴な方法ではありますが次の一行を加えましょう。
flag = False if flag is None else flag