我想锁定进行更改的某些列。为此,我首先锁定了整个文件。
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'
当您使用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)
这样您的工作表将被锁定,但那些特定的列将不会被锁定。