【Python】openpyxlでExcelのフォントを設定する方法【色・サイズ・太字・下線・上付き・打消し線など】

PythonではExcelのフォントを細かいところまで設定することができます。フォントの種類だけでなく大きさや色、アンダーラインなども自由に決めることができます。

これから紹介するコードは以下のコードの続きになると考えてください。シートまで開いた状態からのスタートになります。

Excelファイルの読み込みからシートの取得までの方法は以下の記事にまとめています。

関連記事

PythonでExcel操作をするときには必ずファイル(ワークブック)の読み込みからシートの指定をする必要があります。 今回はそんな基本的な部分のコードの書き方を3ステップで紹介していきます。 1:openpyxlモジュールの[…]

PythonでExceを読み込む方法【ワークブックからシートの指定まで】

フォントの設定

インポート

フォントを設定するには以下のモジュールをインポートします。もし、これがないとフォントの設定を行うたびに「openpyxl.styles.fonts.Font」と書くことになります。

以下のようにインポートすると「Font」だけで使えるようになります。

公式ドキュメントはコチラ

フォントオブジェクト

フォントの設定ではフォントオブジェクトを作って行います。このオブジェクトには、フォント名やサイズ、色、アンダーラインなどの様々な情報を持たせることができます。

openpyxlでフォントサイズを設定する
フォントの設定

上のように入力するとA1のセルに「HGP明朝B」で大きさ24の文字が出力されています。

  • Excelファイルを取得するとWorkbookオブジェクトが作られます
  • シートを取得するとWorksheetオブジェクトが作られます
  • セルを取得するとCellオブジェクトが作られます
  • セルの値はvalue属性に格納されています
  • セルのフォントはfont属性に格納されています(←ココ)

Fontの引数一覧

一覧&意味

物によっては短縮形がありますが、カッコないの書き方でも同じです。

Fontの引数意味
nameフォント名を文字列で指定
b(bold)ボールド体(太文字)
Trueで太字、Falseで戻る
i(italic)イタリック体(斜体)
Trueで斜体、Flaseで戻る
strike打消し線
Trueで打消し線、Flaseで戻る
sz(size)文字の大きさ
サイズを数値で指定(小数可能)
u(underline)アンダーライン4種類ある
後述
shadow文字に影をつける
Trueで影がつくがパッと見分からない
セルの編集モードで分かる
vertAlign上付き下付き文字の変更3種類ある
後述
color色コード文字列で指定
shceme文字が薄く?細く?なる
majorで細く、minorで戻る
charset,family,outilne
extend,condense
設定したけど特に変化なし
詳細が分かり次第追記します

このように様々なオプションがありますが、設定しても変化が分からない物もありました。

変化が分かるものだけを設定してみると以下のようになります。

openpyxlで色や太さを設定
フォントの設定

4行目のshadowはわかりにくいですね。(笑)

キーワード引数に関しては以下の記事にまとめています。関数の引数について書いていますが、書き方は同じです。

関連記事

Pythonの関数を実行するときに必要な引数についての解説です。呼び出し方によって位置引数とキーワード引数に分けられます。今回はそれらの違いを見ていきましょう。 もし関数や引数の基本について知りたいという方は以下の記事をご覧ください[…]

Python関数の位置引数とキーワード引数の違いとエラー回避法

色コード一覧

16進数のカラーコードを文字列で渡します。「#」はいりません。

よく使う色は下4色くらいだと思います。

'000000' 'FFFFFF' 'FF0000' '0000FF'

ほかの色コードの確認はコチラ

色の公式ドキュメントはコチラ

フォント名の確認方法

Excelのツールバーから確認することができます。

PythonでExcelのフォントを設定する
フォント名の確認方法

アンダーライン4種類

  • single:文字列の長さ文の一本線
  • double:文字列の長さ文の二本線
  • singleAccounting:セルの長さ文の一本線
  • doubleAccounting:セルの長さ文の二本線
PythonでExcelのフォントを設定する
アンダーラインの種類

上下付き文字3種類

  • superscript:上付き文字
  • subscript:下付き文字
  • baseline:元に戻る
openpyxlで上付き下付き文字を設定
上下付き文字

まとめ

  • フォントの設定はフォントオブジェクトを作る
  • キーワード引数を設定する
  • name、size、colorぐらいあれば十分かな。。。

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]

【独学】Pythonを学習できる無料&有料教材7選