Excel ファイル内の見た目を整える際、セルごとにフォントを設定すると手作業が煩雑になりがちです。Python ライブラリ openpyxl を利用すれば、対象範囲を指定して フォント名・サイズ・色・太字・斜体・取り消し線・下線・縦位置 などをまとめて変更できます。
目次
事前準備
項目 | 内容 |
---|
Python 版 | 3.9 以上 |
追加ライブラリ | openpyxl(pip install openpyxl ) |
入力ファイル | sales_performance.xlsx |
出力ファイル | sales_performance_styled.xlsx |
サンプルコード
from openpyxl import load_workbook
from openpyxl.styles import Font
# 1. ワークブックとワークシートを読み込み
wb_path = 'sales_performance.xlsx'
wb_src = load_workbook(wb_path)
ws_data = wb_src.active
# 2. 統一したいフォント書式を作成
common_font = Font(
name='Yu Mincho',
size=16,
color='0066CC', # 青系
bold=True,
italic=True,
underline='single',
strike=False,
vertAlign=None # 上付き:superscript / 下付き:subscript
)
# 3. 範囲指定(ここでは C3:G3)で書式を適用
for row in ws_data['C3':'G3']:
for cell in row:
cell.font = common_font
# 4. 保存
wb_src.save('sales_performance_styled.xlsx')
コード解説
行 | 説明 |
---|
Font オブジェクト | bold , italic , underline , strike , vertAlign などを同時に設定できます。 |
underline='single' | 下線を 1 本引きます。二重線にしたい場合は 'double' を指定します。 |
vertAlign=None | 上付きや下付きにする場合だけ 'superscript' または 'subscript' を指定します。 |
セル範囲 | ws_data['C3':'G3'] のようにコロン区切りで一括指定が可能です。複数行・複数列にも対応します。 |
主な Font プロパティ一覧
プロパティ | 値の例 | 効果 |
---|
name | 'Calibri' | フォント名 |
size | 14 | フォントサイズ(ポイント) |
color | 'FF0000' | 16 進数で RGB 指定 |
bold | True / False | 太字 |
italic | True / False | 斜体 |
underline | 'single' | 下線('double' も可) |
strike | True | 取り消し線 |
vertAlign | 'superscript' | 上付き(下付きは 'subscript' ) |
応用アイデア
目的 | 実装ポイント |
---|
データ行すべてに交互色を付ける | PatternFill と行番号の偶奇判定で塗り分けが可能です。 |
条件に応じて書式を切り替える | if cell.value > ...: で分岐し、複数種類の Font を使い分けます。 |
シート全体の既存書式をリセット | 既存セルをループし、cell.font = Font() でデフォルトに戻します。 |
まとめ
- Font オブジェクト を 1 つ定義しておけば、複数セルへ効率的に書式を適用できます。
- 下線・取り消し線・斜体・縦位置なども同時に指定できるため、Excel 上での手作業を大幅に削減できます。
openpyxl
はセル範囲を指定するだけで一括操作が行えるため、レポートの統一感を高めたい場面に最適です。