Workbook解决方式
  DBofSBJ1MLVN 2023年11月02日 76 0

Workbook is encrypted 解决方式

当打开受保护的工作簿时,会引发如下错误:

import xlrd
 
book = xlrd.open_workbook('encrypted.xls')
Error:

Traceback (most recent call last):

当工作表被标记为受保护的工作表时会发生这种情况

注1:设置方式(Excel > 工具 > 保护 > 保护工作表/簿)

注2:设置保护工作表/簿时,密码为可选,若不设置密码,则会使用默认密码 'VelvetSweatshop' ,此密码后续将会使用到

但目前 xlrd 貌似无法直接处理此类带有保护的文件

针对此情况有两种解决方案:

1、手动撤销保护

打开 Excel 文件,选择工具 > 保护 > 撤销工作表/簿保护,输入密码撤销保护,再使用 xlrd 操作


2、若你有100+个Excel文件需要处理,方案1显然效率不高,需要进行批量撤销操作

这就需要使用到另一个 Python 库(msoffcrypto)来解密各种 MS Office 文件

以下为该库的GitHub地址:

https://github.com/nolze/msoffcrypto-tool

pip安装即可:

pip install msoffcrypto-tool

以下为简要的使用方式,详细请参考GitHub:

import msoffcrypto
 
file = msoffcrypto.OfficeFile(open('encrypted.xls', 'rb'))  # 读取原文件
file.load_key(password='VelvetSweatshop')  # 填入设置保护时设置的密码, 默认密码为 'VelvetSweatshop'
file.decrypt(open('decrypted.xls', 'wb'))  # 解密后保存为新文件, 新文件无保护,可直接使用 xlrd 读取内容

之后就可以使用xlrd正常打开并操作解密后的文件 decrypted.xls 了


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读