如何保护Excel中的列以防止使用openpyxl进行更改?

问题描述 投票:0回答:1

我想锁定进行更改的某些列。为此,我首先锁定了整个文件。

ws = wb["RFI"]
ws.protection.sheet = True

但是后来我尝试锁定一些列

for col in ['U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD']:
    ws[col].protection = Protection(locked=False)

我知道

AttributeError: 'tuple' object has no attribute 'protection'
python openpyxl
1个回答
1
投票

当您使用worksheet['<some letter>']时,返回的是该列中所有单元格的元组:

ws['A'] -> (Cell A1, Cell A2 ... Cell A<max_row>)

锁定工作表后,您需要遍历要解锁的单元格:

ws = wb["RFI"]
ws.protection.sheet = True

for col in ['U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD']:
        for cell in ws[col]:
            cell.protection = Protection(locked=False)

这样您的工作表将被锁定,但那些特定的列将不会被锁定。

© www.soinside.com 2019 - 2024. All rights reserved.