You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python编辑仅需密码修改的只读保护Excel文件

用Openpyxl编辑仅需编辑密码的Excel文件

你碰到的是Excel的工作表保护(不是整个文件加密),msoffcrypto只处理需要密码才能打开的文件级加密,所以不管用。下面是用Openpyxl解决的两种方法:

方法1:知道密码时直接移除保护编辑

如果有编辑密码,直接用Openpyxl解锁工作表,编辑完还能重新加保护:

from openpyxl import load_workbook

# 加载目标Excel文件
wb = load_workbook("protected_edit.xlsx")
# 选择要编辑的工作表(这里选第一个,也可以用ws = wb["工作表名"])
ws = wb.active

# 输入密码移除工作表保护
ws.protection.unprotect(password="Passw0rd")

# 执行编辑操作,比如修改A1单元格
ws["A1"] = "已修改内容"

# 可选:编辑完重新添加保护,可设置新密码
ws.protection.password = "NewPass123"
ws.protection.enable()

# 保存修改后的文件
wb.save("edited_file.xlsx")

方法2:不知道密码时绕过旧版保护(仅适用于Excel 2010及更早版本)

注意:这个方法只对旧版Excel的弱哈希保护有效,新版Excel的保护绕不开,而且要确保操作合规:

from openpyxl import load_workbook
from openpyxl.utils import hash_password

wb = load_workbook("protected_edit.xlsx")
ws = wb.active

# 生成空密码的哈希值,替换原保护的哈希
ws.protection._password = hash_password("")

# 现在可以自由编辑内容了
ws["C3"] = "绕过保护后的修改内容"

wb.save("bypassed_file.xlsx")

注意事项

  • 工作表保护只是防止误操作,不是强加密,不要用这些方法处理涉及敏感数据的文件。
  • 编辑后如果需要保留保护,记得重新设置密码并启用。

内容的提问来源于stack exchange,提问作者Kirilas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:50:22