【Python×Excel】指定フォルダ内のExcelファイルを一括処理する方法

PDF化

 

日々の業務で、複数のExcelファイルを一つずつ開いて同じ作業を繰り返すなんてこと、ありませんか?

実はPythonを使えば、特定のフォルダにあるExcelファイルを一括で処理することができます。

これにより、ファイルの中身を一括で変更したり、データを抽出したり、名前を変更したりといった作業が一気に自動化できます。

今回は、指定フォルダ内のExcelファイルを自動で読み込み、特定のセルにデータを入力するという例をもとにご紹介します。




⬛︎こんなことができるようになる!

・指定フォルダ内のすべてのExcelファイルを自動処理できる
・特定のセルに一括で値を入力できる
・毎回の手作業をPythonで自動化できる

⬛︎準備するもの

使用するライブラリは openpyxlos の2つです。

【インストール】

pip install openpyxl

os

は標準ライブラリなのでインストール不要です。

⬛︎実際のコードを見てみよう

ここでは、「フォルダ内にあるすべてのExcelファイルのA1セルに“確認済”と入力する」例を紹介します。

import os
from openpyxl import load_workbook

# 対象のフォルダ(Excelファイルが入っている)
target_folder = "C:/Users/ユーザー名/Desktop/excel_files"

# フォルダ内のすべてのファイルをチェック
for file in os.listdir(target_folder):
    if file.endswith(".xlsx") and not file.startswith("~$"):  # テンポラリファイルを除外
        file_path = os.path.join(target_folder, file)
        
        # ファイルを読み込み
        wb = load_workbook(file_path)
        ws = wb.active
        
        # A1セルに値を入力
        ws["A1"] = "確認済"
        
        # 上書き保存
        wb.save(file_path)

print("すべてのファイルに入力が完了しました。")

⬛︎コードのポイント解説

os.listdir() でフォルダ内のファイルを取得
.endswith(".xlsx") でExcelファイルだけを対象に
load_workbook() でファイルを開き、A1セルに「確認済」と入力
wb.save() で上書き保存

⬛︎応用できる例

このコードをベースにすれば、以下のような処理も可能です。

  • 指定したセルの値を一括で変更
  • 特定のキーワードが含まれているファイルだけ処理
  • Excelの内容を読み込んでCSVに変換
  • ファイル名を日付付きでリネームして保存

⬛︎注意点

  • .xlsx 形式でない古いExcel(.xls)には対応していません(xlrdなど別ライブラリが必要)
  • フォルダ内にテンポラリファイル(~$ ではじまる)を含めないようにする処理が必要です
  • 上書き保存なので、必要であれば事前にバックアップを取っておくのがおすすめです

⬛︎まとめ

今回は、Pythonを使って指定フォルダ内のExcelファイルを一括で処理する方法をご紹介しました。

毎日・毎週繰り返していた作業も、この方法を使えばわずか数秒で完了します。

■こんな方におすすめ

・複数のExcelファイルを毎回同じように編集している人
・作業の自動化や効率化を考えている事務・経理担当者
・日報・週報・請求書などをテンプレートで量産している人

ぜひこの機会にPython自動化にチャレンジしてみてください。