본문 바로가기
파이썬 코딩 기록

openpyxl 에러 - AttributeError: 'MergedCell' object attribute 'value' is read-only

by 파이썬코딩대학 2025. 1. 16.

AttributeError: 'MergedCell' object attribute 'value' is read-only
AttributeError: 'MergedCell' object attribute 'value' is read-only

"AttributeError: 'MergedCell' object attribute 'value' is read-only" 오류 쉽게 해결하기

문제 상황

Python에서 openpyxl 라이브러리를 사용해 Excel 파일을 다루다가 이런 오류를 만난 적 있나요?

AttributeError: 'MergedCell' object attribute 'value' is read-only

 

이건 병합된 셀에 값을 넣으려 할 때 발생하는 오류임
Merged Cell !!

왜 이런 오류가 날까요?

Excel에서 병합된 셀은 사실 하나의 셀처럼 보이지만, 내부적으로는 여러 개의 셀이 합쳐진 거예요.
그런데 openpyxl에서는 병합된 셀 중 맨 왼쪽 위 셀만 값을 저장할 수 있어요. 다른 셀에 값을 넣으려고 하면 오류가 나는 거죠.

 

해결 방법

간단해요! 병합된 셀 중에서 맨 왼쪽 위에 있는 셀에만 값을 넣으면 돼요. 아래 코드로 쉽게 해결할 수 있어요:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 셀 병합하기
ws.merge_cells("A1:C1")

# 병합된 셀의 맨 왼쪽 위 셀에만 값 넣기
ws["A1"] = "병합된 셀 내용"

wb.save("example.xlsx")

추가 팁

  • 병합된 셀 해제하기: ws.unmerge_cells("A1:C1")를 사용하면 병합이 풀려요.
  • 문서화 습관: 병합한 셀이 어디인지 적어두면 나중에 코드 관리가 훨씬 쉬워져요.

정리

병합된 셀을 다룰 때는 항상 맨 왼쪽 위 셀에만 값을 넣으면 돼요.
이렇게 하면 오류 없이 Excel 작업을 처리할 수 있을 거임 ㄱㄱ