- シート取得は「Excelのどのシートを扱うかを正確に指定する」ための最重要ステップ
- pandasでシート一覧を取得する(最も簡単で実務向け)
- pandasで特定のシートを取得する(読み込みと同時)
- pandasで複数シートをまとめて取得する(辞書形式)
- openpyxlでシートを取得する(セル単位の操作向け)
- openpyxlで特定のシートを取得する(セル操作の基本)
- openpyxlでアクティブシートを取得する(最初のシート)
- 例題①:Excelの全シート名を一覧表示する
- 例題②:特定のシートだけ読み込んで集計する
- 例題③:テンプレートExcelの特定シートに値を書き込む
- pathlib を使った読みやすいシート取得
- シート取得を業務で設計するときの視点
シート取得は「Excelのどのシートを扱うかを正確に指定する」ための最重要ステップ
Excel業務自動化では、「どのシートを読み込むか」 を正しく指定できるかどうかが、後続の処理(読み込み・書き込み・集計)の成功を左右します。
Excelは複数シートを持つことが多く、シート名がバラバラだったり、順番が変わったりするため、シート取得の仕組みを理解しておくことが非常に重要です。
Pythonでは主に pandas と openpyxl を使ってシートを取得します。
それぞれ用途が違うので、初心者でも迷わないように丁寧に解説します。
pandasでシート一覧を取得する(最も簡単で実務向け)
Excel内のシート名をすべて取得する
import pandas as pd
xls = pd.ExcelFile("data.xlsx")
print(xls.sheet_names)
Python深掘りポイント
ExcelFileを使うと「シート名一覧」が取得できる- シート名が不明なExcelを扱うときに必須
- 実務では「毎回シート名が変わるExcel」がよくあるため非常に便利
pandasで特定のシートを取得する(読み込みと同時)
シート名を指定して読み込む
import pandas as pd
df = pd.read_excel("data.xlsx", sheet_name="売上")
print(df.head())
Python深掘りポイント
sheet_name="売上"のように文字列で指定- 読み込みとシート取得を同時に行える
- pandasは「表として扱う」ことが目的なので、シート取得=読み込みになる
pandasで複数シートをまとめて取得する(辞書形式)
全シートを一括で取得する
import pandas as pd
dfs = pd.read_excel("data.xlsx", sheet_name=None)
for name, df in dfs.items():
print("シート名:", name)
print(df.head())
Python深掘りポイント
sheet_name=Noneで全シートを辞書として取得{シート名: DataFrame}の形になる- 複数シートを一括処理する業務で非常に強力
openpyxlでシートを取得する(セル単位の操作向け)
Workbook を読み込み、シート名一覧を取得する
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
print(wb.sheetnames)
Python深掘りポイント
- openpyxl は「Excelそのものを操作する」ためのライブラリ
- 書式設定・セル操作・テンプレート編集に向いている
- シート名一覧は
wb.sheetnamesで取得できる
openpyxlで特定のシートを取得する(セル操作の基本)
シート名で取得する
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
ws = wb["売上"]
print(ws["A1"].value)
Python深掘りポイント
wb["売上"]でシートオブジェクトを取得ws["A1"].valueでセルの値を取得- pandasではできない「セル単位の操作」が可能
openpyxlでアクティブシートを取得する(最初のシート)
最初のシートを取得する
from openpyxl import load_workbook
wb = load_workbook("data.xlsx")
ws = wb.active
print(ws.title)
Python深掘りポイント
activeは「最初に開かれるシート」- シート名が毎回変わるExcelでも使える
- ただし、意図しないシートがアクティブになっている場合もあるので注意
例題①:Excelの全シート名を一覧表示する
シナリオ
Excelの構造を確認したいときに便利。
from openpyxl import load_workbook
wb = load_workbook("report.xlsx")
for name in wb.sheetnames:
print("シート:", name)
Python深掘りポイント
- シート名が分からないExcelを扱うときの第一歩
- 自動処理の前に構造を確認できる
例題②:特定のシートだけ読み込んで集計する
シナリオ
「売上」シートだけ読み込み、金額合計を計算したい。
import pandas as pd
df = pd.read_excel("report.xlsx", sheet_name="売上")
print("売上合計:", df["金額"].sum())
Python深掘りポイント
- pandasは「表として扱う」ので集計が圧倒的に簡単
- シート取得と集計が一気にできる
例題③:テンプレートExcelの特定シートに値を書き込む
シナリオ
テンプレートの「Summary」シートに値を入れたい。
from openpyxl import load_workbook
wb = load_workbook("template.xlsx")
ws = wb["Summary"]
ws["B2"] = 12345
wb.save("output.xlsx")
Python深掘りポイント
- openpyxlは「セル単位の書き込み」に強い
- テンプレートを使ったレポート自動化で必須
pathlib を使った読みやすいシート取得
Pathオブジェクトで直感的に書ける
from pathlib import Path
from openpyxl import load_workbook
path = Path("data.xlsx")
wb = load_workbook(path)
print(wb.sheetnames)
Pythonメリット
- パス結合が
/で直感的 - 大規模プロジェクトでも保守性が高い
シート取得を業務で設計するときの視点
- pandasは「表として扱う」ため、読み込みとシート取得が同時
- openpyxlは「Excelそのものを操作」するため、セル単位の編集が可能
- シート名が変わるExcelでは一覧取得が必須
- 複数シートを一括処理する場合は辞書形式が便利
- テンプレートExcelを使う場合は openpyxl が最適
