【问题标题】:Protecting Workbook in openpyxl在 openpyxl 中保护工作簿
【发布时间】:2017-07-20 16:29:06
【问题描述】:

我尝试使用 openpyxl 保护 Excel 工作簿。

到目前为止,我查看了不同的、可能相关的类,但我找不到像 worksheets 那样的 set_password 方法。

碰巧有一个workbook.protection 模块,我尝试了运气。我的代码,归结为绝对相关的最低限度如下:

from openpyxl import Workbook
from openpyxl.workbook.protection import WorkbookProtection

wb = Workbook()
wb.security = WorkbookProtection(workbookPassword='0000', revisionsPassword = '0000', lockWindows = True, lockStructure = True, lockRevision = True)
wb.create_sheet("testSheet")
wb.save("test.xlsx")

我没有收到任何错误,但也没有任何保护。任何帮助将不胜感激。

【问题讨论】:

  • 我能找到的唯一保护是在工作表上,wb["testSheet"].protection.set_password('test'),检查这个post
  • 会使用load_workbook(file, read_only=True).get_sheet_names() 创建一个列表,然后循环保护每个工作表吗?
  • @PRMoureu 是的,正如我所说,我知道这一点,但找不到类似的工作簿方法。
  • @MattR 保护每张工作表与保护工作簿不同。在受保护的工作表中,单元格被保护不被编辑,但工作表本身仍然可以被编辑。在受保护的工作簿中,无法编辑工作表(例如重命名)。
  • 这目前在 Openpyxl (v2.4.8) 中不起作用 - 密码不会写入输出文件。我正在为此进行 PR (bitbucket.org/openpyxl/openpyxl/pull-requests/180/…),因此希望它会包含在未来的版本中。

标签: python excel openpyxl


【解决方案1】:

目前这在 Openpyxl (v2.4.8) 中不起作用 - 密码不会写入输出文件。对此有一个公开的 PR (https://bitbucket.org/openpyxl/openpyxl/pull-requests/180/read-and-write-workbook-protection/diff),因此希望它会包含在未来的版本中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多