본문 바로가기
Python/xlwings

xlwings RuntimeError: Cannot change the value of a read-only cell 오류 해결하기

by PySun 2024. 12. 31.
반응형

소개

xlwings를 사용하여 Excel 파일을 자동화하다가 'RuntimeError: Cannot change the value of a read-only cell' 오류가 발생하는 경우가 있습니다. 이 오류는 일반적으로 읽기 전용 셀을 수정하려 할 때 발생합니다. 이번 글에서는 이 문제의 원인과 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

먼저, 'RuntimeError: Cannot change the value of a read-only cell' 오류가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import xlwings as xw

wb = xw.Book('read_only_file.xlsx')  # 읽기 전용 파일 열기
sheet = wb.sheets[0]

# 읽기 전용 셀 수정 시도
sheet['A1'].value = '새로운 값'

에러 해결 방법

1. 읽기 전용 파일을 수정할 권한 부여

읽기 전용으로 열려 있는 파일을 수정할 수 있도록 권한을 부여하거나, 파일의 속성을 변경해야 합니다. 파일의 속성을 확인하고 읽기 전용 모드를 삭제하십시오.


import os

# 파일 속성 변경
file_path = 'read_only_file.xlsx'
os.chmod(file_path, 0o777)  # 모든 사용자에게 읽기, 쓰기 권한 부여

2. 새로운 파일로 저장하기

기존의 읽기 전용 파일을 수정하려면, 해당 파일 내용을 새로운 파일로 복사 후 저장하는 방법도 있습니다. 이를 통해 새로운 파일에서 원하는 값을 수정할 수 있습니다.

import xlwings as xw

# 새로운 워크북 생성
new_wb = xw.Book()
new_sheet = new_wb.sheets[0]

# 기존 읽기 전용 파일에서 값 가져오기
wb = xw.Book('read_only_file.xlsx')
old_sheet = wb.sheets[0]
new_sheet['A1'].value = old_sheet['A1'].value

# 새로운 파일로 저장
new_wb.save('modifiable_file.xlsx')

마무리

이번 글에서는 xlwings에서 발생하는 'RuntimeError: Cannot change the value of a read-only cell' 오류에 대한 간단한 해결 방법을 확인했습니다. 파일의 읽기 전용 속성을 수정하거나, 새로운 파일로 저장함으로써 이 문제를 극복할 수 있습니다. 항상 파일 권한과 속성을 적절히 관리하여 자동화 작업을 수행하는 것이 매우 중요합니다.

반응형