반응형
문제 개요
파이썬에서 openpyxl을 사용하여 엑셀 파일을 다루다가 'ValueError: Row dimensions are incompatible' 에러가 발생하는 경우가 있습니다. 이 오류는 행의 차원이 호환되지 않을 때 발생하며, 서로 다른 차원의 행을 연산하려고 할 때 주로 발생합니다. 이 문제를 해결하기 위한 몇 가지 해결책을 살펴보고, 예시 코드를 통해 안내하겠습니다.
에러 발생 예시 코드
'ValueError: Row dimensions are incompatible' 에러가 발생할 만한 간단한 예시 코드를 살펴봅시다.
from openpyxl import Workbook
# 두 개의 워크북 생성
workbook1 = Workbook()
workbook2 = Workbook()
# 각 워크북에 데이터 추가
data1 = [[1, 2, 3], [4, 5, 6]]
data2 = [[7, 8, 9], [10, 11, 12]]
workbook1.active.append(data1)
workbook2.active.append(data2)
try:
# 차원이 다른 행을 연산
result = workbook1.active.iter_rows() + workbook2.active.iter_rows()
except ValueError as e:
print(f"에러 발생: {e}")
에러 해결 방법
1. 차원이 호환되는 행으로 맞추기
연산하려는 행들의 차원을 맞추어야 합니다. 동일한 열 수를 가진 행들끼리 연산하도록 행의 차원을 조정하세요.
from openpyxl import Workbook
# 두 개의 워크북 생성
workbook1 = Workbook()
workbook2 = Workbook()
# 각 워크북에 데이터 추가
data1 = [[1, 2, 3], [4, 5, 6]]
data2 = [[7, 8, 9], [10, 11, 12]]
workbook1.active.append(data1)
workbook2.active.append(data2)
# 차원이 호환되도록 행의 차원 조정
adjusted_rows = min(len(workbook1.active.rows), len(workbook2.active.rows))
result = workbook1.active.iter_rows(max_row=adjusted_rows) + workbook2.active.iter_rows(max_row=adjusted_rows)
마무리
'ValueError: Row dimensions are incompatible' 에러에 대한 해결 방법을 살펴보았습니다. 행의 차원을 호환되도록 조정하여 문제를 해결할 수 있습니다.
반응형