본문 바로가기
Python/openpyxl

파이썬 openpyxl ValueError: Row dimensions are incompatible오류 해결하기

by PySun 2024. 4. 11.
반응형

문제 개요

파이썬에서 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' 에러에 대한 해결 방법을 살펴보았습니다. 행의 차원을 호환되도록 조정하여 문제를 해결할 수 있습니다.

반응형