在python openpyxl中锁定一些单元格进行编辑

时间:2017-10-22 17:26:24

标签: python excel openpyxl

我正在使用openpyxl处理Microsoft Excel文件(.xlsx / .xlsm),但我正在努力锁定单元格(即阻止编辑)。我目前的代码是:

lock = Protection(locked=True,
                    hidden=False)
ws['A1'].protection = lock  # ws is my worksheet

但是,我仍然可以编辑单元格A1。我该如何解决?

修改

link(到openpyxl电子邮件链)建议锁定整个工作表,然后解锁所有单元格,但A1。但是,这似乎不是一个可靠的解决方案,因为我将倾销大量数据。

2 个答案:

答案 0 :(得分:4)

锁定整张纸:

     cell.protection = Protection(locked=False)

然后解锁可编辑的单元格

OneToOne

答案 1 :(得分:3)

您还需要为整个工作表设置保护。该规范说明了对单个细胞的保护:

  

一个布尔值,指示单元格是否已锁定。当细胞是   标记为“已锁定”并且工作表受到保护,然后是选项   Sheet Part的sheetProtection元素(第18.3.1.85节)中指定的是   禁止使用这些细胞。