この記事では、Pythonのopenpyxlライブラリを使い、Excelワークシートのセルのフォントスタイル(サイズ、太字、イタリック体、色など)をプログラムで設定する方法について解説します。
目次
Fontオブジェクトのインポートと作成
セルのフォントスタイルを操作するには、まずopenpyxl.stylesモジュールからFontクラスをインポートする必要があります。
Fontオブジェクトを生成する際に、様々な引数を指定することでフォントの見た目を定義します。
name: フォント名(例:'Calibri','Arial')size: フォントサイズbold:Trueで太字italic:Trueでイタリック体color:FF0000(赤)のようなRRGGBB形式の16進数コードで色を指定
from openpyxl.styles import Font
# 太字でサイズ24のフォントを定義
title_font = Font(name='Calibri', size=24, bold=True)
# 赤色のイタリック体のフォントを定義
important_note_font = Font(name='Arial', size=12, italic=True, color='FF0000')
セルにフォントスタイルを適用する
作成したFontオブジェクトは、セルオブジェクトの.font属性に代入することで、そのセルに適用されます。
以下の例では、新しいワークブックを作成し、A1セルとA3セルにそれぞれ異なるフォントスタイルを適用しています。
import openpyxl
from openpyxl.styles import Font
# 新しいワークブックを作成
workbook = openpyxl.Workbook()
# アクティブなシートを取得
sheet = workbook.active
# 1. フォントオブジェクトを作成
title_font = Font(name='Calibri', size=24, bold=True)
note_font = Font(italic=True, color='808080') # グレイのイタリック
# 2. セルに値を書き込み、フォントを適用
sheet['A1'] = 'Monthly Report'
sheet['A1'].font = title_font
sheet['A3'] = 'This is an internal document.'
sheet['A3'].font = note_font
# 3. 変更をファイルに保存
workbook.save('styled_document.xlsx')
print("styled_document.xlsx を保存しました。")
このスクリプトを実行すると、styled_document.xlsxというExcelファイルが作成され、A1セルは大きく太字のフォントで、A3セルはグレイのイタリック体で表示されます。
まとめ
openpyxlでセルのフォントスタイルを設定する手順は、openpyxl.stylesからFontオブジェクトをインポートし、目的のスタイルを持つFontオブジェクトを生成し、そのオブジェクトを対象セルの.font属性に代入するという流れになります。この方法により、レポートや請求書などのExcelドキュメントの見た目をプログラムで自動的に整えることが可能です。
