본문 바로가기
Python/xlwings

xlwings ValueError: Cannot infer column number 오류 해결하기

by PySun 2024. 12. 18.
반응형

소개

xlwings를 사용하다 보면 'ValueError: Cannot infer column number'라는 오류가 발생할 수 있습니다. 이 오류는 일반적으로 데이터가 없는 시트에 접근하거나 잘못된 범위를 지정했을 때 나타납니다. 이번 블로그 글에서는 이와 같은 에러의 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'ValueError: Cannot infer column number' 오류가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import xlwings as xw

# 새로운 엑셀 인스턴스 및 워크북 생성
app = xw.App(visible=True)
workbook = app.books.add()

# 데이터가 없는 시트의 셀에 접근
result = workbook.sheets[0].range('A1').value
print(result)

에러 해결 방법

1. 올바른 셀 범위 지정

시트를 다루다 보면 가끔 비어있는 셀에 접근하려고 할 때 오류가 발생합니다. 따라서, 데이터가 존재하는 셀에 접근하도록 코드를 수정해야 합니다.

import xlwings as xw

# 새로운 엑셀 인스턴스 및 워크북 생성
app = xw.App(visible=True)
workbook = app.books.add()

# A1 셀에 값 입력
workbook.sheets[0].range('A1').value = 'Hello, xlwings!'

# 데이터가 있는 셀에 접근
result = workbook.sheets[0].range('A1').value
print(result)

2. 활성화된 시트와 셀 확인

비어있는 셀에서 값을 가져오려 할 때는 활성화된 시트와 접근할 셀의 범위를 확인하여야 합니다. 이를 위해 아래와 같이 코드를 수정해볼 수 있습니다.

import xlwings as xw

# 새로운 엑셀 인스턴스 및 워크북 생성
app = xw.App(visible=True)
workbook = app.books.add()

# 복수의 값 설정
workbook.sheets[0].range('A1').value = 'Hello, world!'
workbook.sheets[0].range('B1').value = 'ValueError Test'

# 데이터가 있는 시트의 셀에 접근
try:
    result = workbook.sheets[0].range('A1').value
    print(result)
except ValueError:
    print("셀의 값을 가져오는 데 문제가 발생했습니다.")

마무리

이 블로그 글에서는 xlwings에서 발생하는 'ValueError: Cannot infer column number' 오류에 대한 몇 가지 해결 방법을 살펴보았습니다. 올바른 셀 범위를 지정하거나 활성화된 시트와 값을 가진 셀을 확인함으로써 이러한 오류를 극복할 수 있습니다. xlwings를 사용할 때는 항상 데이터의 유무와 범위를 확인하여 조심스레 접근하는 것이 중요합니다.

반응형