我需要检测 excel 文件是否受密码保护。如果密码受保护,请向用户询问密码。 我如何在 python 中执行此操作? 我在网上看了一点,到目前为止没有一个有用的答案
我猜你可以按照这些思路做一些事情。
如果文件被加密,它将通过并且可以请求密码。
如果不是,会报错,可以正常加载文件。
import openpyxl
import io
import msoffcrypto
from msoffcrypto.exceptions import FileFormatError # pip install msoffcrypto-tool
filename = 'foo.xlsx'
with open(filename, 'rb') as file:
try:
workbook = io.BytesIO()
office_file = msoffcrypto.OfficeFile(file)
print("File is password protected")
passwd = input("Please enter file password")
office_file.load_key(password=passwd)
office_file.decrypt(workbook)
except FileFormatError as e:
print(e)
print("File is not password protected")
workbook=filename
wb = openpyxl.load_workbook(workbook)
ws = wb['Sheet1']
print(ws['A1'].value)