日々の業務で、複数のExcelファイルを一つずつ開いて同じ作業を繰り返すなんてこと、ありませんか?
実はPythonを使えば、特定のフォルダにあるExcelファイルを一括で処理することができます。
これにより、ファイルの中身を一括で変更したり、データを抽出したり、名前を変更したりといった作業が一気に自動化できます。
今回は、指定フォルダ内のExcelファイルを自動で読み込み、特定のセルにデータを入力するという例をもとにご紹介します。
⬛︎こんなことができるようになる!
・指定フォルダ内のすべてのExcelファイルを自動処理できる
・特定のセルに一括で値を入力できる
・毎回の手作業をPythonで自動化できる
⬛︎準備するもの
使用するライブラリは openpyxl
と os
の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自動化にチャレンジしてみてください。