Excel シートのレイアウトを整える際、「フォント」「罫線」「塗りつぶし」などを毎回個別に設定すると作業が煩雑になりがちです。openpyxl の NamedStyle
を活用すると、よく使う書式の組み合わせをひとつにまとめ、対象セルへ一括で適用できます。本記事では、フォント+罫線 を組み合わせたスタイルを作成し、データ範囲へ設定する手順をご紹介いたします。
目次
前提環境
項目 | 内容 |
---|
Python | 3.10 以上 |
使用ライブラリ | openpyxl ( pip install openpyxl ) |
サンプルファイル | task_list.xlsx |
出力ファイル | task_list_styled.xlsx |
サンプルコード
from openpyxl import load_workbook
from openpyxl.styles import Font, Border, NamedStyle, Side
# 1) ワークブックを読み込み
wb = load_workbook('task_list.xlsx')
ws = wb.active
# 2) NamedStyle を作成
tbl_style = NamedStyle(name='TableStyle')
tbl_style.font = Font(name='Calibri', size=12)
thin_side = Side(border_style='thin', color='000000')
tbl_style.border = Border(
left=thin_side, right=thin_side,
top=thin_side, bottom=thin_side
)
# 3) データ範囲を定義(行 4 以降、列 B~E)
for row in ws.iter_rows(min_row=4, max_row=ws.max_row,
min_col=2, max_col=5):
for cell in row:
cell.style = tbl_style
# 4) 保存
wb.save('task_list_styled.xlsx')
コードの要点
ステップ | 解説 |
---|
NamedStyle の作成 | name はブック内で一意となる任意の名称を付けます。 |
フォント設定 | Font(name='Calibri', size=12) で本文用の標準フォントを指定しています。 |
罫線設定 | Side(border_style='thin') を 4 辺へ適用し、表全体を枠線で囲みます。 |
セルへの割当て | cell.style = tbl_style でフォントと罫線を同時に適用できます。 |
応用例
目的 | 追加設定の例 |
---|
見出し行を強調する | header_style.font = Font(bold=True, color='FFFFFF') とし、PatternFill で背景色を追加 |
数値列の書式を固定 | tbl_style.number_format = '#,##0' で 3 桁区切り表示 |
複数スタイルを登録 | NamedStyle を用途別に作成し、セルごとに使い分け |
まとめ
- NamedStyle を使えば、よく使う書式を一括管理でき、シート作成の手間とミスを削減できます。
- 作成したスタイルはブック内で再利用でき、後から変更しても瞬時に全セルへ反映されます。
- フォント・罫線・塗りつぶし・表示形式などを組み合わせることで、読みやすく統一感のあるレポートを簡単に作成できます。