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 はセル範囲を指定するだけで一括操作が行えるため、レポートの統一感を高めたい場面に最適です。