Python openpyxl 保护Excel 表格不被修改

背景: 工作中需要自动化生成报告的时候,如果PDF 那就还好,如果需要Excel, 那么为了防止别人误触或者修改,以保留报告的原始真实性,这时候就需要对Excel 进行保护啦!😀

1. 首先openpyxl 会有Protection module:

Protection — openpyxl 3.0.9 documentation

仔细查看说明文档并做尝试之后发现,里面有两个部分:

- Workbook Protection

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

可以设置你的密码, 这时候excel book 的structure 会被锁住, 新增sheet 的功能不会有~

然而! 每个sheet 里面的单元格还是可以修改! 这不是我想要的!让我们再看看第二个功能:

 - Worksheet Protection

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

ws.protection.sheet = True
ws.protection.enable()
ws.protection.disable()

 同样,这也不是我想要的, sheet name 不能被更改,但是cell 同样可以修改。

 仔细阅读手册,也会发现, protection 的保护功能是最基本的,structure, sheet 保护。

经过一番的搜索尝试发现,如果要冻结整个cell, 可以使用 feeze_panes 功能 :

ws = wb.active
ws.protection.password = '...'
ws.freeze_panes = None

最后,祝你好运😀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值