目次
msoffcrypto
- pip install msoffcrypto-tool
- Excel以外のOfficeでもいける(らしい)
# -------------------------------------
# Basic Usage:
# -------------------------------------
import pandas as pd
import msoffcrypto
encrypted = open('encrypted.xlsx', 'rb')
file = msoffcrypto.OfficeFile(encrypted)
file.load_key(password='PASSWORD')
file.load_key('decrypted.xlsx', 'wb') as f:
file.decrypt(f)
encrypted.close()
# -------------------------------------
# Basic Usage(in-memory):
# -------------------------------------
import msoffcrypto
import io
import pandas as pd
decrypted = io.BytesIO()
with open('encrypted.xlsx', 'rb') as f:
file = msoffcrypto.OfficeFile(f)
file.load_key(password='PASSWORD')
file.decrypt(decrypted)
df = pd.read_excel(decrypted)
print(df)pywin32com
- pywin32は、Excelだけでなく、Windowsでの処理をPythonから自動化できる外部ライブラリ
- そのため、Excelだけでなく、WordやPowerPointなどのその他のアプリケーションも操作が可能
- そのコードはVBAに近い
# インストール
pip install pywin32- Mac だと使えない
# 参考URL
# https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbook.open
# pywin32の機能を使ってExcel操作する
import win32com.client
# ExcelにPWを設定する
def set_excel_pw(f_p, pw_str):
excel = win32com.client.Dispatch('Excel.Application')
book = excel.Workbooks.Open(f_p, False, False, None, pw_str)
book.SaveAs(f_p, 51, password)
book.Close()
excel.Quit()
# ExcelのPWを解除し、別名で保存
def remove_excel_pw_and_save_as(f_p_bf, f_p_af, pw_str):
excel = win32com.client.Dispatch('Excel.Application')
book = excel.Workbooks.Open(f_p_bf, False, False, None, pw_str)
book.SaveAs(f_p_af, 51, '')
book.Close()
excel.Quit()
# ExcelのPWを解除し、上書き保存
def remove_excel_pw_and_overwrite(f_p, pw_str):
excel = win32com.client.Dispatch('Excel.Application')
book = excel.Workbooks.Open(f_p, False, False, None, pw_str)
excel.DisplayAlerts = False # 上書きMSGを非表示
book.SaveAs(f_p, 51, '')
book.Close()
excel.Quit()