withopen("decrypted.docx", "wb") as f: file.decrypt(f)
encrypted.close()
结合pandas
1 2 3 4 5 6 7 8 9 10 11 12 13
import msoffcrypto import io import pandas as pd
decrypted = io.BytesIO()
withopen("encrypted.xlsx", "rb") as f: file = msoffcrypto.OfficeFile(f) file.load_key(password="Passw0rd") # Use password file.decrypt(decrypted)
df = pd.read_excel(decrypted) print(df)
高级用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Verify password before decryption (default: False) # The ECMA-376 Agile/Standard crypto system allows one to know whether the supplied password is correct before actually decrypting the file # Currently, the verify_password option is only meaningful for ECMA-376 Agile/Standard Encryption file.load_key(password="Passw0rd", verify_password=True)
# Use private key file.load_key(private_key=open("priv.pem", "rb"))
# Use intermediate key (secretKey) file.load_key(secret_key=binascii.unhexlify("AE8C36E68B4BB9EA46E5544A5FDB6693875B2FDE1507CBC65C8BCF99E25C2562"))
# Check the HMAC of the data payload before decryption (default: False) # Currently, the verify_integrity option is only meaningful for ECMA-376 Agile Encryption file.decrypt(open("decrypted.docx", "wb"), verify_integrity=True)