首页 > 解决方案 > 如何尽快检查大型 Excel 文件是否受到保护?

问题描述

如何以最快的方式检查excel文件是否受密码保护(不尝试打开它并放置异常)?

更新:

from zipfile import *
from openpyxl import load_workbook
filename = 'Z:\\path_to_file\\qwerty.xlsm' # protected one
try:
    wb = load_workbook(filename, data_only=True, read_only=True) 
except (BadZipfile) as error:
    print(is_zipfile(filename))

一个问题是我得到False了输出,因此我无法摆脱异常并用is_zipfile()条件替换它。

标签: pythonopenpyxlwin32com

解决方案


使用 openpyxl 库的解决方案:

import openpyxl
wb = openpyxl.load_workbook(PATH_TO_FILE)

if wb.security.lockStructure == None:
    #  no password, act accordingly
    ...
else:
    #  password, act accordingly
    ...

推荐阅读