Excelファイルを扱う際に、見た目を整えることは非常に重要です。
openpyxlを使用すると、セルのフォント、色、罫線、条件付き書式など、多彩なスタイル設定が可能です。
本記事では、openpyxlを使ってExcelファイルのスタイルを設定する方法について、初心者向けに詳しく解説します。
openpyxlのインストール
まずは、openpyxlをインストールしましょう。Pythonのパッケージマネージャであるpipを使って簡単にインストールできます。
pip install openpyxl
フォントの設定・変更
フォントを設定することで、セル内のテキストの見た目をカスタマイズできます。
ここでは、フォントの種類、サイズ、色、太字、斜体、下線などの設定方法を紹介します。
from openpyxl import Workbook
from openpyxl.styles import Font
# 新しいワークブックを作成
wb = Workbook()
ws = wb.active
# フォントを設定
font_style = Font(name='Arial', size=14, bold=True, italic=True, color='FF0000', underline='single')
# フォントをセルに適用
ws['A1'].font = font_style
ws['A1'] = "Styled Font"
# ファイルを保存
wb.save("styled_font.xlsx")
このコードを実行すると、
「styled_font.xlsx」ファイルの「A1」セルにArialフォントで、14ポイント、太字、斜体、赤色、下線付きのテキストが設定されます。
文字色の設定・変更
文字色を変更することで、セルの内容を強調することができます。以下は、文字色を変更する方法の例です。
from openpyxl.styles import Font
# 新しいワークブックを作成
wb = Workbook()
ws = wb.active
# 文字色を設定
red_font = Font(color='FF0000')
# 文字色をセルに適用
ws['H2'].font = red_font
ws['H2'] = "Red Text"
# ファイルを保存
wb.save("text_color.xlsx")
このコードを実行すると、
「text_color.xlsx」ファイルの「H2」セルに赤色のテキストが設定されます。
セルの背景色を設定・変更
セルの背景色を設定することで、特定のセルを強調表示できます。
from openpyxl.styles import PatternFill
# 背景色を設定
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
# 背景色をセルに適用
ws['B2'].fill = fill
ws['B2'] = "Yellow Background"
# ファイルを保存
wb.save("background_color.xlsx")
このコードを実行すると、「background_color.xlsx」ファイルの「B2」セルに黄色の背景色が設定されます。
罫線の設定・変更
罫線を設定することで、セルの区切りを明確にし、表の見やすさを向上させることができます。
from openpyxl.styles import Border, Side
# 罫線を設定
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
# 罫線をセルに適用
ws['C3'].border = thin_border
ws['C3'] = "Thin Border"
# ファイルを保存
wb.save("borders.xlsx")
このコードを実行すると、「borders.xlsx」ファイルの「C3」セルに薄い罫線が設定されます。
数字フォーマットの設定・変更
数字フォーマットを設定することで、セルに入力された数値の表示形式をカスタマイズできます。
from openpyxl.styles import numbers
# 数字フォーマットを設定
ws['D4'].number_format = numbers.FORMAT_CURRENCY_USD_SIMPLE
ws['D4'] = 1234.56
# ファイルを保存
wb.save("number_format.xlsx")
このコードを実行すると、
「number_format.xlsx」ファイルの「D4」セルにドル通貨形式($1,234.56)で数値が表示されます。
列幅と行の高さの設定・変更
列幅や行の高さを調整することで、セルの内容が見やすくなります。
# 列幅を設定
ws.column_dimensions['E'].width = 30
# 行の高さを設定
ws.row_dimensions[5].height = 40
# データを入力
ws['E5'] = "Wide Column and Tall Row"
# ファイルを保存
wb.save("column_row_dimensions.xlsx")
このコードを実行すると、
「column_row_dimensions.xlsx」ファイルの「E」列の幅が30、「5」行の高さが40に設定されます。
条件付き書式の設定・変更
条件付き書式を使うことで、特定の条件に応じてセルのスタイルを自動的に変更できます。
from openpyxl.formatting.rule import ColorScaleRule
# 条件付き書式を設定
color_scale_rule = ColorScaleRule(start_type='percentile', start_value=0, start_color='FF0000',
end_type='percentile', end_value=100, end_color='00FF00')
# 条件付き書式を適用
ws.conditional_formatting.add('F1:F10', color_scale_rule)
# データを入力
for i in range(1, 11):
ws[f'F{i}'] = i * 10
# ファイルを保存
wb.save("conditional_formatting.xlsx")
このコードを実行すると、
「conditional_formatting.xlsx」ファイルの「F1」から「F10」セルに色のグラデーションが適用されます。
セルの結合
セルを結合することで、複数のセルを1つのセルとして扱うことができます。
# セルを結合
ws.merge_cells('G1:H1')
ws['G1'] = "Merged Cells"
# ファイルを保存
wb.save("merged_cells.xlsx")
このコードを実行すると、
「merged_cells.xlsx」ファイルの「G1」から「H1」セルが結合されます。
まとめ
openpyxlを使うことで、Excelファイルのスタイルを自由自在にカスタマイズできます。フォント、背景色、罫線、数字フォーマット、列幅、行の高さ、条件付き書式、セルの結合など、さまざまなスタイル設定を駆使して、見やすく美しいExcelファイルを作成しましょう。
さらに詳しい情報や追加の機能については、公式ドキュメントを参照してください。
公式ドキュメント: openpyxl documentation