美文网首页
openpyxl3.0官方文档(35)—— 文档保护

openpyxl3.0官方文档(35)—— 文档保护

作者: Sinchard | 来源:发表于2020-07-15 00:14 被阅读0次

    请注意,使用密码保护工作簿或工作表只能提供基本的安全性。工作簿或工作表中的数据并没有加密,可以通过多种免费工具进行修改。事实上,规范声明:工作表或工作簿文档保护功能不应与文件安全性混淆。它旨在使工作簿免受无意修改的影响,无法保护工作簿免受恶意修改的影响。
    Openpyxl支持保护工作簿和工作表不被修改功能。openpyxl使用Open XMLLegacy Password Hash算法生成哈希密码值,除非您明确指定另一个算法。

    工作簿保护¶

    为了防止其他用户查看隐藏的工作表,添加、移动、删除或隐藏工作表或重命名工作表,可以使用密码来保护工作簿的结构。可以使用openpyxl.workbook.protection.WorkbookProtection.workbookPassword属性:

        >>> wb.security.workbookPassword = '...'
        >>> wb.security.lockStructure = True    
    

    同样,可以通过设置另一个密码防止从sharedworkbook中删除更改跟踪和更改历史记录。可以使用openpyxl.workbook.protection.WorkbookProtection.revisionsPassword属性来设置:

        >>> wb.security.revisionsPassword = '...'
    

    类:openpyxl.workbook.protection.WorkbookProtection对象的其他属性提供来其他限制,但这些限制只有在设置了适当的密码后才能生效。
    为了便于您在不使用默认哈希算法的情况下设置密码,openpyxl提供特定的设置方法,例如:

        hashed_password = ...
        wb.security.set_workbook_password(hashed_password, already_hashed=True)
    

    工作表保护¶

    工作表的很多内容都可以通过设置openpyxl.worksheet.protection.SheetProtection类的属性来锁定。不像工作簿保护,可以不使用密码来实现工作表保护。可以通过调用openpxyl.worksheet.protection.SheetProtection.password()enable()disable()启用工作表保护:

        >>> ws = wb.active
        >>> ws.protection.sheet = True
        >>> ws.protection.enable()
        >>> ws.protection.disable()
        
    

    如果未指定密码,则用户可以禁用已配置的工作表保护功能而无需指定密码。反之则必须提供密码来更改。密码是使用openpxyl.worksheet.protection.SheetProtection.password属性设置的:

        >>> ws = wb.active
        >>> ws.protection.password = '...'
        
    

    相关文章

      网友评论

          本文标题:openpyxl3.0官方文档(35)—— 文档保护

          本文链接:https://www.haomeiwen.com/subject/tdhchktx.html