📝 はじめに
業務で共有するExcelファイルに含まれる 作成者名 や 最終更新者名 などの個人情報を削除したいことがたまにないでしょうか。
特に、社外に提出するファイルや共有サーバーに置くファイルでは、こういった メタデータの消し忘れ が思わぬ情報漏えいにつながることも。
そこで、Pythonを使って、ディレクトリ内のExcelファイル(.xlsx
)を一括処理し、メタデータを削除・上書きするスクリプトを作成しました。
🔧 使用ライブラリ
- openpyxl:Excelファイルの読み書きに使用
pip install openpyxl
💡 スクリプト全体
import openpyxl
import os
# 対象ディレクトリのパス
directory = 'your/path'
# ディレクトリ内の全ファイルをループ
for filename in os.listdir(directory):
# .xlsxファイルのみ対象
if filename.endswith('.xlsx'):
filepath = os.path.join(directory, filename)
print(f"Processing {filepath}...")
# Excelファイルを読み込み
wb = openpyxl.load_workbook(filepath)
# メタデータ(プロパティ)を変更
wb.properties.creator = 'SAMPLE' # 作成者を指定の名前に変更(例:部門名など)
wb.properties.lastModifiedBy = '' # 最終更新者を空にする(削除扱い)
# 上書き保存
wb.save(filepath)
print(f"Updated metadata for {filename}")
print("All files have been processed.")
✅ 処理内容のポイント
wb.properties を使って、Excelの内部プロパティを編集しています。
作成者 (creator) は任意の文字列に書き換えられます。例として「SAMPLE」としています。
最終更新者 (lastModifiedBy) は空文字を指定することで事実上の削除になります。
元ファイルを そのまま上書き保存 するので、バックアップが必要なら別途対応してください。
⚠️ 注意点
.xls(古い形式) には対応していません。openpyxl は .xlsx 専用です。
パスやファイル名に日本語が含まれている場合、環境によってはエンコーディングエラーが出ることがあります。
上書き処理を行うため、事前にバックアップを取ることを強く推奨します。
🎯 おわりに
ちょっとしたスクリプトですが、手作業でメタデータを確認・修正する手間が一気に省けます。
「一括で処理したい」方におすすめです。
同様のニーズがある方の参考になれば嬉しいです!