OpenPyXL応用編:条件付き書式とグラフ作成

今回は実用的な応用編として、条件付き書式グラフ作成の方法を紹介します。これらを活用すれば、Excelファイルをより動的かつ視覚的に活用できるようになります!


1. 条件付き書式の適用

条件付き書式は、セルの値に応じてフォーマットを動的に変更する機能です。OpenPyXLを使うと、Pythonでこれを簡単に設定できます。

条件付き書式の基本例

以下の例では、特定の範囲のセルで値が50以上のものを赤い背景色に変更します。

from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule

# 新しいExcelファイルを作成
workbook = Workbook()
sheet = workbook.active

# サンプルデータを入力
data = [10, 20, 50, 75, 30]
for i, value in enumerate(data, start=1):
    sheet[f"A{i}"] = value

# 条件付き書式を設定
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["50"], fill=red_fill)

# 条件付き書式を適用する範囲を指定
sheet.conditional_formatting.add("A1:A5", rule)

# ファイルを保存
workbook.save("conditional_formatting.xlsx")
print("条件付き書式を適用したExcelファイルを保存しました")
OpenPyXlによる条件付き書式の適応

ポイント

  • PatternFill: セルの背景色を設定します。
  • CellIsRule: 特定の条件(例:値が50以上)を指定します。
  • conditional_formatting.add: 条件付き書式を適用する範囲を指定します。

2. グラフの作成

次に、OpenPyXLを使ってExcelファイルにグラフを追加する方法を解説します。以下は、棒グラフを作成する例です。

グラフの基本例

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

# 新しいExcelファイルを作成
workbook = Workbook()
sheet = workbook.active

# サンプルデータを入力
data = [
    ["Month", "Sales"],
    ["January", 100],
    ["February", 120],
    ["March", 150],
    ["April", 130]
]
for row in data:
    sheet.append(row)

# グラフを作成
chart = BarChart()
chart.title = "Monthly Sales"
chart.x_axis.title = "Month"
chart.y_axis.title = "Sales"

# データ範囲を指定
data_ref = Reference(sheet, min_col=2, min_row=2, max_row=5, max_col=2)
categories_ref = Reference(sheet, min_col=1, min_row=2, max_row=5)

# データとカテゴリをグラフに追加
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(categories_ref)

# シートにグラフを挿入
sheet.add_chart(chart, "E5")

# ファイルを保存
workbook.save("bar_chart.xlsx")
print("グラフを作成したExcelファイルを保存しました")
OpenPyXl_棒グラフの作成

ポイント

  • BarChart: 棒グラフを作成するクラスです。他にもLineChart(折れ線グラフ)やPieChart(円グラフ)などがあります。
  • Reference: グラフのデータ範囲やカテゴリ範囲を指定します。
  • add_chart: グラフをシートに挿入します。

3. 応用例:条件付き書式 + グラフ

以下は、条件付き書式とグラフを組み合わせた実例です。

from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule
from openpyxl.chart import BarChart, Reference

# 新しいExcelファイルを作成
workbook = Workbook()
sheet = workbook.active

# サンプルデータを入力
data = [
    ["Month", "Sales"],
    ["January", 100],
    ["February", 120],
    ["March", 150],
    ["April", 130]
]
for row in data:
    sheet.append(row)

# 条件付き書式を設定
red_fill = PatternFill(start_color="FF9999", end_color="FF9999", fill_type="solid")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["130"], fill=red_fill)
sheet.conditional_formatting.add("B2:B5", rule)

# グラフを作成
chart = BarChart()
chart.title = "Monthly Sales with Conditional Formatting"
chart.x_axis.title = "Month"
chart.y_axis.title = "Sales"

data_ref = Reference(sheet, min_col=2, min_row=2, max_row=5, max_col=2)
categories_ref = Reference(sheet, min_col=1, min_row=2, max_row=5)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(categories_ref)

sheet.add_chart(chart, "E5")

# ファイルを保存
workbook.save("conditional_formatting_with_chart.xlsx")
print("条件付き書式とグラフを組み合わせたExcelファイルを保存しました")

OpenPyXl_応用

4. まとめ

条件付き書式やグラフ作成は、OpenPyXLの中でも特に強力な機能です。これらを組み合わせることで、データを視覚的に強調し、分析作業を効率化できます。ぜひ、自分のデータに応用してみてください!

上部へスクロール