openpyxl使える関数・メソッド・クラス一覧【Excel自動化の基本リファレンス】

ながみえ

Excel業務の自動化をPythonで行うなら、まず押さえておきたいのが openpyxl です。

openpyxlは、Excelファイル(.xlsx)をPythonから直接読み書き・編集・装飾・グラフ作成まで行える強力なライブラリです。

しかし「関数やメソッドが多すぎて、どれを使えばいいのか分からない…」という方も多いのではないでしょうか。

この記事では、openpyxlでよく使う関数・メソッド・クラスを体系的に一覧化し、
業務自動化に直結する機能をわかりやすくまとめました。

ぜひこの記事をブックマークしてお役立てください。

あわせて読みたい
Python×Excel連携による業務自動化|openpyxl入門ガイド
Python×Excel連携による業務自動化|openpyxl入門ガイド

openpyxl主要クラス一覧(概要+主な使い方)

openpyxlは、Excelブックの構造を「クラス(class)」として扱うことで、PythonからExcelを自在に操作できるように設計されています。

業務自動化でopenpyxlを使う場合、まず理解しておきたいのが「どのクラスがどのレベル(階層)でExcelを操作するのか」という全体構造です。

openpyxlのクラス階層(全体マップ)

Workbook  ──┬─ Worksheet ──┬─ Cell
             │               └─ Style (Font / Fill / Alignment / Border ...)
             ├─ Chart (BarChart / LineChart / Reference ...)
             ├─ DataValidation
             └─ NamedStyle / Utils / Formula など
  • Workbook:Excelファイル全体
  • Worksheet:各シート
  • Cell:シート内の各セル

この階層を理解すると、openpyxlの全ての操作がどこに属するかが明確になります。

主要クラス一覧表|概要と主な使い方

クラス名概要主な使い方(import例)
Workbook新しいExcelファイル全体を作成・保存するクラス。from openpyxl import Workbookwb = Workbook()
Worksheet各シートを表すクラス。セル操作や行列操作の中心。ws = wb.active / ws = wb["Sheet1"]
Cell個々のセルを表すクラス。値や書式設定を扱う。cell = ws.cell(row=2, column=3)
Font, Alignment, PatternFill, Border, NamedStyle書式設定やスタイルを管理するクラス群。from openpyxl.styles import Font, Alignment, PatternFill
load_workbook()既存のExcelファイルを読み込む関数。from openpyxl import load_workbookwb = load_workbook("data.xlsx")
Chart, Reference, Seriesグラフ生成・データ範囲指定を行うクラス群。from openpyxl.chart import BarChart, Reference
DataValidation入力規則(プルダウン等)を設定するクラス。from openpyxl.worksheet.datavalidation import DataValidation
openpyxl.utils列名や座標変換などの便利関数をまとめたモジュール。from openpyxl.utils import get_column_letter

補足:業務自動化で特に頻出の3大クラス

  1. Workbook – ファイル作成・保存・シート管理
  2. Worksheet – シート内データ操作の中心
  3. Cell – 値・フォーマット・コメント・数式の操作

この3つを理解すれば、ほとんどのExcel自動化タスクをカバーできます。

その後に「書式設定」「グラフ」「検証」などを覚えると、より高度な自動化が可能になります。

Workbookクラスの使い方と主なメソッド一覧

Workbook クラスは、openpyxlでExcelブック(.xlsxファイル)全体を管理する中心的なクラスです。

Excelファイルの新規作成・保存・シート操作などは、すべてこのクラスを通じて行われます。

業務自動化では、まずこの Workbook を使って「ファイルを開く/作る/保存する」ことから始まります。

Workbookクラスの基本構文

from openpyxl import Workbook

# 新しいExcelファイルを作成
wb = Workbook()

# 現在アクティブなシートを取得
ws = wb.active
ws.title = "レポート"

# 保存
wb.save("report.xlsx")
  • Workbook() は「新規作成用」
  • 既存ファイルを開く場合は load_workbook() を使う(別章で紹介)

よく使うメソッド一覧

メソッド名説明使用例
.save(filename)Excelブックを指定ファイル名で保存するwb.save("output.xlsx")
.create_sheet(title=None, index=None)新しいシートを追加するwb.create_sheet("データ", 0)
.remove(sheet)指定シートを削除するwb.remove(wb["Sheet"])
.copy_worksheet(sheet)シートをコピーするws_copy = wb.copy_worksheet(ws)
.worksheets全シートのリストを取得for ws in wb.worksheets:
.active現在アクティブなシートを取得ws = wb.active
.sheetnamesシート名の一覧を取得print(wb.sheetnames)

コード例:複数シートをまとめて作成する

from openpyxl import Workbook

wb = Workbook()

# 既定のシートを削除
default_sheet = wb.active
wb.remove(default_sheet)

# 新しいシートを複数作成
for month in ["1月", "2月", "3月"]:
    ws = wb.create_sheet(title=f"{month}_売上")
    ws["A1"] = "日付"
    ws["B1"] = "売上"

# シート名の一覧を確認
print(wb.sheetnames)  # ['1月_売上', '2月_売上', '3月_売上']

# 保存
wb.save("sales_report.xlsx")
  • デフォルトで「Sheet」という空シートが1つ作成されるので、不要なら削除
  • .create_sheet() の第2引数でシートの挿入位置を制御可能

Workbookクラスのまとめ

  • Workbook() → 新規ブック作成
  • .save() → 保存
  • .create_sheet() / .remove() → シート管理
  • .sheetnames / .active → シート情報取得

Worksheetクラスの使い方と主なメソッド一覧

Worksheet クラスは、Excelファイル内の1枚のシートを表します。

データの書き込み・読み取り・行列操作・セル結合・シート名変更など、実際の自動化スクリプトで最も頻繁に使われるクラスです。

Worksheetクラスの基本構文

from openpyxl import Workbook

wb = Workbook()
ws = wb.active  # アクティブシートを取得
ws.title = "売上データ"

# セルに値を入力
ws["A1"] = "商品名"
ws["B1"] = "売上"

# 保存
wb.save("sample.xlsx")
  • Workbook.active で現在のシートを取得
  • Workbook["シート名"] で既存シートを指定取得可能

よく使うメソッド一覧

メソッド/プロパティ説明使用例
.cell(row, column, value=None)指定セルを取得/値設定ws.cell(row=2, column=3, value=100)
.append(iterable)行末にデータを追加ws.append(["A001", "商品A", 5000])
.iter_rows() / .iter_cols()行・列単位で繰り返し処理for row in ws.iter_rows(values_only=True):
.max_row / .max_column最終行・最終列の番号を取得print(ws.max_row)
.merge_cells(range_string)セルを結合ws.merge_cells("A1:C1")
.unmerge_cells(range_string)結合を解除ws.unmerge_cells("A1:C1")
.delete_rows(idx, amount=1)指定行を削除ws.delete_rows(3)
.insert_rows(idx, amount=1)行を挿入ws.insert_rows(5, 2)
.delete_cols(idx, amount=1)列を削除ws.delete_cols(2)
.insert_cols(idx, amount=1)列を挿入ws.insert_cols(1, 2)
.titleシート名の取得/変更ws.title = "売上2025"

コード例:セル結合と書式設定

from openpyxl import Workbook
from openpyxl.styles import Alignment

wb = Workbook()
ws = wb.active

# タイトル行を結合
ws.merge_cells("A1:C1")
ws["A1"] = "月次売上レポート"
ws["A1"].alignment = Alignment(horizontal="center", vertical="center")

wb.save("merged.xlsx")
  • .merge_cells() でセル結合
  • .alignment で中央揃えを指定

Worksheetクラスのまとめ

  • Worksheet は「シート内の処理すべて」の中心クラス
  • .cell().append().iter_rows() が基本操作の三本柱
  • 行・列操作や結合も自在に行える

Cellクラスの使い方と主なメソッド一覧

Cell クラスは、Excelシート上の1つのセルを表すクラスです。

セルの値を取得・変更するだけでなく、フォントや背景色、数値の書式設定、コメントや数式なども扱えます。

業務自動化の中で「セルごとの細かい調整」を行う際に、最も多用されるクラスです。

Cellクラスの基本構文

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# セルの取得方法(行・列指定)
cell = ws.cell(row=1, column=1)

# 値の設定
cell.value = "商品名"

# 値の取得
print(cell.value)  # → 商品名
  • ws.cell(row, column)Cell オブジェクトを取得
  • セルの内容は .value で読み書き可能

よく使うプロパティ・メソッド一覧

プロパティ/メソッド名説明使用例
.valueセルの値を取得・設定ws["A1"].value = "テキスト"
.coordinateセルの座標(例:”B2″)を取得print(ws["B2"].coordinate)
.row, .column行番号・列番号を取得print(ws["B2"].row)
.number_format表示形式(書式)を設定cell.number_format = "#,##0"
.fontフォント設定(太字・色など)cell.font = Font(bold=True, color="FF0000")
.fill背景色を設定cell.fill = PatternFill("solid", fgColor="FFFF99")
.alignment配置(中央・右寄せなど)cell.alignment = Alignment(horizontal="center")
.border枠線を設定cell.border = Border(left=Side(style="thin"))
.commentコメントを設定cell.comment = Comment("確認済み", "山田")
.hyperlinkハイパーリンクを設定cell.hyperlink = "https://example.com"
.data_typeセルのデータ型を確認print(cell.data_type)

コード例:セルの値とフォーマットを設定

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment

wb = Workbook()
ws = wb.active

# タイトル行
cell = ws["A1"]
cell.value = "売上金額"
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill("solid", fgColor="4F81BD")
cell.alignment = Alignment(horizontal="center")

# 数値データ
ws["A2"] = 1234567
ws["A2"].number_format = "#,##0円"

wb.save("cell_format.xlsx")
  • .Font.PatternFill を組み合わせると見栄えが整う
  • .number_format で単位や桁区切りを簡単に設定できる

Cellクラスのまとめ

  • Cell はExcel操作の最小単位で、値・書式・コメントを司る
  • .value, .font, .fill, .alignment が基本操作の核
  • .number_format.comment を活用すると「業務用レベルの整形」が可能

書式設定関連クラス(Font / Alignment / PatternFill / Border / NamedStyle)

Excelの業務自動化では、単にデータを出力するだけでなく、「見やすいフォーマットで整形する」ことが非常に重要です。

openpyxlでは、openpyxl.styles モジュールを使って、フォント・位置・色・罫線などを細かく指定できます。

書式設定関連の主なクラス一覧

クラス名概要主な役割
Fontフォント(文字)スタイル設定太字、斜体、サイズ、フォント名、色など
Alignment文字の位置揃え水平方向・垂直方向・折り返し設定など
PatternFillセルの背景色設定塗りつぶし色やパターン指定
Border / Sideセル枠線設定線の太さ・色・位置指定
NamedStyle書式をまとめて定義・再利用スタイルテンプレートを適用可能

Fontクラスのパラメータ一覧(フォント設定)

パラメータ説明
nameフォント名"Meiryo", "Arial"
size文字サイズFont(size=14)
bold太字Font(bold=True)
italic斜体Font(italic=True)
color文字色(16進)Font(color="FF0000")
from openpyxl.styles import Font

ws["A1"].font = Font(name="Meiryo", bold=True, color="FFFFFF", size=12)

Alignmentクラスのパラメータ一覧(配置設定)

パラメータ説明
horizontal水平方向の配置"center", "left", "right"
vertical垂直方向の配置"center", "top", "bottom"
wrap_text折り返し表示True
shrink_to_fitセル内に自動で収まるよう縮小True
from openpyxl.styles import Alignment

ws["A1"].alignment = Alignment(horizontal="center", vertical="center", wrap_text=True)

PatternFillクラスのパラメータ一覧(背景色設定)

パラメータ説明
fill_type塗りつぶしの種類"solid"(単色)
fgColor前景色(背景色)"FFFF00"(黄色)
from openpyxl.styles import PatternFill

ws["A1"].fill = PatternFill(fill_type="solid", fgColor="4F81BD")

Border / Sideクラスのパラメータ一覧(枠線設定)

要素説明使用例
Side(style, color)枠線のスタイル・色を指定Side(style="thin", color="000000")
Border(left, right, top, bottom)各辺の枠線を設定Border(left=side, right=side)
from openpyxl.styles import Border, Side

side = Side(style="thin", color="000000")
ws["A1"].border = Border(left=side, right=side, top=side, bottom=side)

グラフ関連クラス(Chart / Reference / Series)

openpyxlでは、Excel上に棒グラフ・折れ線グラフ・円グラフなどをPythonで直接作成できます。

グラフ生成の要となるのが、Chart クラスとその関連クラスです。

主に使用するのは以下の3つです↓↓

クラス名役割主なモジュール
Chart
BarChart, LineChart, PieChart
グラフの種類を定義openpyxl.chart
Referenceグラフのデータ範囲を指定openpyxl.chart
Seriesデータ系列(凡例・色・タイトル)を設定openpyxl.chart.series
  • グラフ関連クラスは openpyxl.chart モジュールで提供
  • 基本構成は「Referenceで範囲指定 → Chart生成 → add_data()add_chart()
  • 実務では棒グラフ(BarChart)と折れ線(LineChart)が最頻出

その他便利関数(openpyxl.utils など)

openpyxlには、セルや列の座標・文字列操作を簡単に行うためのユーティリティ関数が多数用意されています。

とくに openpyxl.utils モジュールには、列番号 ↔ 列名変換やセル番地解析といった便利関数がそろっています。

業務自動化スクリプトでは「動的にセルを指定する」「列名を計算で求める」などの場面でよく登場します。

主なユーティリティ関数一覧

関数名説明使用例
get_column_letter(idx)列番号を列名(A, B, C…)に変換get_column_letter(3)'C'
column_index_from_string(col)列名を列番号に変換column_index_from_string('C')3
coordinate_from_string(cell)セル番地を行・列に分解coordinate_from_string('B12')('B', 12)
range_boundaries(range_string)範囲文字列を分解して座標取得range_boundaries('A1:C3')(1, 1, 3, 3)
quote_sheetname(name)シート名を安全にエスケープquote_sheetname('月次レポート')'月次レポート'
absolute_coordinate(coord)相対座標を絶対参照形式に変換absolute_coordinate('B2')'$B$2'

コード例:列番号と列名の変換

from openpyxl.utils import get_column_letter, column_index_from_string

# 列番号 → 列名
print(get_column_letter(1))   # A
print(get_column_letter(27))  # AA

# 列名 → 列番号
print(column_index_from_string("A"))   # 1
print(column_index_from_string("AA"))  # 27
  • Excel列のインデックス処理に必須。
  • ループなどで列を自動的に増やす際に重宝する。

その他便利関数のまとめ

  • openpyxl.utils は「座標・列名・範囲操作」を便利にする補助モジュール
  • 主要関数:get_column_letter() / column_index_from_string() / range_boundaries()
  • 数式生成・動的範囲指定・グラフ自動化などで大活躍

まとめ

ここまで、openpyxlで業務自動化を行うために知っておくべき主要クラス・関数・メソッドを体系的に紹介してきました。

Excel操作の自動化は、一見すると難しそうに見えますが、openpyxlの構造を理解すれば「人がExcelでやる操作」をすべてPythonで再現できるようになります。

Excel業務は「人が入力・整形・保存を繰り返す」定型作業の宝庫です。openpyxlを使えば、それらを正確かつ美しく自動化できます。

一度仕組みを作ってしまえば、翌月以降はスクリプトを実行するだけでレポートが完成します。

あなたの時間を奪っていたExcel作業を、今日からPythonに任せてみましょう。

あわせて読みたい
Python×Excel連携による業務自動化|openpyxl入門ガイド
Python×Excel連携による業務自動化|openpyxl入門ガイド
記事URLをコピーしました