我正在使用openpyxl
处理Microsoft Excel文件(.xlsx / .xlsm),但我正在努力锁定单元格(即阻止编辑)。我目前的代码是:
lock = Protection(locked=True,
hidden=False)
ws['A1'].protection = lock # ws is my worksheet
但是,我仍然可以编辑单元格A1
。我该如何解决?
修改
此link(到openpyxl
电子邮件链)建议锁定整个工作表,然后解锁所有单元格,但A1
。但是,这似乎不是一个可靠的解决方案,因为我将倾销大量数据。
答案 0 :(得分:4)
锁定整张纸:
cell.protection = Protection(locked=False)
然后解锁可编辑的单元格
OneToOne
答案 1 :(得分:3)
您还需要为整个工作表设置保护。该规范说明了对单个细胞的保护:
一个布尔值,指示单元格是否已锁定。当细胞是 标记为“已锁定”并且工作表受到保护,然后是选项 Sheet Part的sheetProtection元素(第18.3.1.85节)中指定的是 禁止使用这些细胞。