Python/xlwings

xlwings 오류 해결하기: KeyError: 'C' is not in list

PySun 2024. 11. 23. 21:46
반응형

소개

xlwings를 사용하여 Excel과 Python을 연결시킬 때 간혹 'KeyError: 'C' is not in list'라는 에러가 발생할 수 있습니다. 이 오류는 보통 지정한 열이 Excel 시트에 존재하지 않을 때 발생합니다. 이번 블로그 글에서는 이 오류가 발생하는 원인과 해결 방법에 대해 이야기해보겠습니다.

에러 발생 예시 코드

먼저, 'KeyError: 'C' is not in list' 에러가 발생할 수 있는 간단한 예시 코드를 살펴볼까요.

import xlwings as xw

# 현재 엑셀 파일 열기
wb = xw.Book.caller()

# 'C'라는 이름의 열을 접근
data = wb.sheets['Sheet1'].range('C:C').value
print(data)

에러 해결 방법

1. 시트 이름 및 열 확인

우선, 시트 이름과 열이 실제로 존재하는지 확인해야 합니다. 만약 시트에 'C'라는 열이 없다면, 정확한 열 이름이나 범위를 사용해야 합니다.

import xlwings as xw

# 현재 엑셀 파일 열기
wb = xw.Book.caller()

# 시트 이름과 범위 확인
sheet = wb.sheets['Sheet1']
if 'C' in sheet.range('A1:Z1').value:  # A1에서 Z1까지의 첫 번째 행 확인
    data = sheet.range('C:C').value
    print(data)
else:
    print("시트에 'C' 열이 존재하지 않습니다.")

2. 열 이름 대신 인덱스 사용

필요한 데이터가 특정 열에 존재한다면, 열 이름을 사용하는 대신 인덱스를 사용해 직접 접근할 수 있습니다. 예를 들어, 'C' 열은 인덱스 2에 해당합니다.

import xlwings as xw

# 현재 엑셀 파일 열기
wb = xw.Book.caller()

# 인덱스를 사용하여 'C' 열 데이터 가져오기
data = wb.sheets['Sheet1'].api.Columns(3).Value  # C 열은 인덱스 3
print(data)

마무리

이 블로그 글에서는 xlwings를 사용하다가 발생하는 'KeyError: 'C' is not in list' 오류에 대한 간단한 해결 방법을 탐색해 보았습니다. 시트와 열 존재 여부를 확인하거나, 열 인덱스를 사용하여 오류를 피할 수 있습니다. 엑셀과 Python의 결합 과정에서 정확한 시트 및 열 이름을 사용하는 것이 중요하며, 문제를 해결하기 위해 항상 코드를 점검하는 습관을 가지는 것이 좋습니다.

반응형