Pythonで複数のExcelファイルからデータを抽出し一覧表を作成する方法|openpyxl×pathlib活用術

業務で多数のExcelファイル(各部署の報告書など)から、特定のセル情報だけを抜き出して一覧表にまとめたい場面は多くあります。

本記事では、Pythonのopenpyxlpathlibを活用して、フォルダ内の複数ブックからセル値を取得し、新しいブックに一覧化する方法をご紹介いたします。


目次

使用ライブラリ

以下のライブラリを使用します。未インストールの場合は、先に以下を実行してください。

pip install openpyxl

サンプル構成と前提

  • 各部署のExcelファイルが ./data_files/ フォルダに格納されている
  • 各ファイルには「情報入力」シートが存在し、そのD2セルに部署名、D3セルに担当者名が入力されている
  • 新しく作成するブックに、一覧としてまとめたい

Pythonコード:複数ブックから情報を抽出してまとめる

from pathlib import Path
from openpyxl import load_workbook, Workbook

# 一覧表の新規作成
summary_book = Workbook()
summary_sheet = summary_book.active
summary_sheet.title = "統合一覧"

# 見出し設定
summary_sheet["B2"] = "所属部署"
summary_sheet["C2"] = "担当者名"

# 対象フォルダのパスを指定
data_folder = Path('./data_files')

# ファイルごとに処理
for index, excel_file in enumerate(data_folder.glob("*.xlsx")):
    source_book = load_workbook(excel_file, read_only=True)
    source_sheet = source_book["情報入力"]

    output_row = index + 3  # 行番号(3行目以降に出力)

    # D2(部署名)と D3(氏名)を読み込んで出力
    summary_sheet[f"B{output_row}"] = source_sheet["D2"].value
    summary_sheet[f"C{output_row}"] = source_sheet["D3"].value

# 一覧ファイルを保存
summary_book.save("部署一覧表.xlsx")

補足:pathlibの便利なメソッド

メソッド名用途説明
Path.glob("*.xlsx")指定した拡張子のファイルのみを抽出
Path.exists()パスが存在するか確認
Path.is_dir()ディレクトリかどうか確認
Path.is_file()ファイルかどうか確認
Path.iterdir()ディレクトリ内のすべての要素を列挙
Path.match("*.xlsx")パターンに一致するか確認
Path.resolve()フルパスとして取得

ファイル構成例(data_files フォルダ)

data_files/
├─ 部署A.xlsx
├─ 部署B.xlsx
├─ 部署C.xlsx

各ファイルの「情報入力」シートに以下のような情報があると仮定:

セル内容
D2営業部
D3森 健太郎

まとめ

本記事では、Pythonを使って複数のExcelブックから特定セルを取得し、1つのファイルにまとめる手法をご紹介いたしました。

  • openpyxlでセル値を読み取り
  • pathlibで複数ファイルを安全かつ柔軟に処理
  • 一覧ファイルとして新規Excelブックを作成

手作業でのコピーペースト作業を大幅に削減できますので、業務効率化にぜひお役立てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次