在python openpyxl中locking一些单元格进行编辑
我正在使用openpyxl
来处理Microsoft Excel文件(.xlsx / .xlsm),但是我正在努力locking单元格(即防止编辑)。 我目前的代码是这样的:
lock = Protection(locked=True, hidden=False) ws['A1'].protection = lock # ws is my worksheet
但是,我仍然可以编辑单元格A1
。 我该如何解决?
编辑:
这个链接 (到一个openpyxl
电子邮件链)build议locking整个工作表,然后解锁所有的单元格,但为A1
。 然而,这看起来不是一个可靠的解决scheme,因为我将倾销大量的数据。
您还需要为整个工作表设置保护。 该规范说明了有关个别电池保护的内容:
指示单元格是否locking的布尔值。 当单元格被标记为“locking”且工作表被保护时,则工作表零件的sheetProtection元素(§18.3.1.85)中指定的选项对于这些单元格是禁止的。
locking整个工作表:
ws.protection.sheet = True
然后解锁可以编辑的单元格
cell.protection = Protection(locked=False)