Python 業務自動化 | Excel業務自動化:Excel基本操作 - シート取得

Python Python
スポンサーリンク

シート取得は「Excelのどのシートを扱うかを正確に指定する」ための最重要ステップ

Excel業務自動化では、「どのシートを読み込むか」 を正しく指定できるかどうかが、後続の処理(読み込み・書き込み・集計)の成功を左右します。
Excelは複数シートを持つことが多く、シート名がバラバラだったり、順番が変わったりするため、シート取得の仕組みを理解しておくことが非常に重要です。

Pythonでは主に pandasopenpyxl を使ってシートを取得します。
それぞれ用途が違うので、初心者でも迷わないように丁寧に解説します。


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 が最適

タイトルとURLをコピーしました