在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)