Pythonでパスワードで保護されたExcelファイルを扱うには msoffcrypt が便利です。
python -m pip install msoffcrypto-tool
open_encrypted_file.py
# モジュールを読み込む
import openpyxl
import msoffcrypto
# パスワード
PASSWORD = "mypassword"
# 暗号化されたファイル
encrypted_file_name = "パスワード付きファイル.xlsx"
# 復号化して保存するファイル
decrypted_file_name = "パスワード解除後.xlsx"
# 暗号化ファイルを開く
f = open(encrypted_file_name, "rb")
encrypted_file = msoffcrypto.OfficeFile(f)
# 復号化のパスワードを設定する
encrypted_file.load_key(password=PASSWORD)
# 復号化したファイルを別のファイルに保存する
decrypted_file = open(decrypted_file_name, "wb")
encrypted_file.decrypt(decrypted_file)
book = openpyxl.load_workbook(decrypted_file_name)
sheet = book.active
# A1にアクセス
cell_A1 = sheet["A1"]
print(cell_A1.value)
暗号化されたExcelファイルをPythonで扱う
手順は難しくありません。
まず最初にopen()でファイルを開きます。このときバイナリモードで開きます。ファイルを開いたら msoffcrypt で扱うためにオブジェクトを作成しておきます(encrypted_file)。
# 暗号化ファイルを開く f = open(encrypted_file_name, "rb") encrypted_file = msoffcrypto.OfficeFile(f)
復号化は次のようにしておこないます。まず encrypted_file.load_key(password=PASSWORD)
で復号化するためのパスワードを設定し、encrypted_file.decrypt(decrypted_file)
で復号化して別名で保存しています。
# 復号化のパスワードを設定する encrypted_file.load_key(password=PASSWORD) # 復号化したファイルを別のファイルに保存する decrypted_file = open(decrypted_file_name, "wb") encrypted_file.decrypt(decrypted_file)
その後は通常のExcelと同様にPythonで扱う亊ができます。