首页 > 解决方案 > 如何锁定现有 Excel 工作表中的特定列?

问题描述

我想锁定现有 Excel 工作表中的特定列。我正在使用下面的代码,但出现以下错误:

AttributeError:“元组”对象没有属性“保护”

谁能指导我哪里出错了,我该如何完成?

import openpyxl
from openpyxl import load_workbook
from openpyxl.styles import Protection

path = r"C:\Users\sarashiv\ABC.xlsx"

wb = load_workbook(path)
ws = wb.active
ws.protection.sheet = True
ws.protection.enable()
ws['A:D'].protection.disable()

wb.save(path)

标签: python-3.xopenpyxl

解决方案


在阅读了多个帖子后,我能够破解这个。我找不到解锁列的方法,但找到了解锁单元格的方法。我使用 for 循环通过解锁许多单元格来解锁列。

    wb = load_workbook(path_1)
    ws = wb.active
    ws.protection.sheet = True
    ws.protection.enable()

    for x in range(1, 100): #Unlocks first 100 rows in first 2 columns
        for y in range(1,3):
            ws.cell(row = x, column = y).protection = Protection(locked=False, hidden=False)
            wb.save(path_1)

推荐阅读