from openpyxl import Workbook
from openpyxl.styles import Protection
# 워크북 및 시트 생성
wb = Workbook()
ws = wb.active
# 셀 잠금 설정 (Protection 객체를 사용하여 설정)
ws["A1"].protection = Protection(locked=True) # A1 셀 잠금
ws["B1"].protection = Protection(locked=False) # B1 셀은 잠금 해제
# 시트 보호 설정 (비밀번호 필요)
ws.protection.set_password("1234")
ws.protection.enable() # 시트 보호 활성화
# 파일 저장
wb.save("cell_lock_example.xlsx")
▪ 결과 값
엑셀 파일 구성 ' 예제 코드 01 실행 후 생성된 파일 정보' 이미지 참조
예제 코드 02 - 특정 열 잠금 설정
▪ 시트의 일부 셀만 수정 가능하고, 나머지 셀은 보호된 상태로 생성
▪ 첫 번째 열 전체를 잠금 해제하여 수정 가능하도록 설정
▪두 번째 열 전체는 잠금하여 수정이 불가능하도록 설정
▪시트 보호를 활성화하여 사용자가 보호된 셀을 수정하지 못하도록 만듬
▪비밀번호로 보호 설정을 추가하여, 보호 해제 시 비밀번호가 필요
from openpyxl import Workbook
from openpyxl.styles import Protection
# 워크북 및 시트 생성
wb = Workbook()
ws = wb.active
# 시트 전체의 모든 셀을 잠금 해제 (기본적으로 엑셀 시트는 잠금 상태로 생성됨)
for row in ws.iter_rows(min_row=1, max_row=10, min_col=1, max_col=10):
for cell in row:
cell.protection = Protection(locked=False)
# 특정 열에 대해 보호 속성 설정
for row in range(1, 11):
ws[f"A{row}"].protection = Protection(locked=False) # A 열은 잠금 해제
ws[f"B{row}"].protection = Protection(locked=True) # B 열은 잠금
# 시트 보호 설정 (비밀번호 필요)
ws.protection.set_password("1234")
ws.protection.enable() # 시트 보호 활성화
# 파일 저장
wb.save("advanced_cell_lock_example.xlsx")