본문 바로가기
Python/xlwings

xlwings ValueError: Invalid data type 오류 해결하기

by PySun 2024. 12. 11.
반응형

소개

xlwings를 사용할 때 'ValueError: Invalid data type' 오류를 마주치는 것은 꽤 일반적인 상황입니다. 이 오류는 Excel과의 데이터 통신 중 잘못된 데이터 유형이 전달될 때 발생합니다. 이 포스트에서는 이 오류가 발생하는 원인과 이를 해결하는 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'ValueError: Invalid data type' 에러가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import xlwings as xw

# Excel 파일 열기
wb = xw.Book()

# 잘못된 데이터 형식으로 셀에 값 할당
data = {'Name': 'John', 'Age': 30}
wb.sheets[0]['A1'].value = data

에러 해결 방법

1. 지원되는 데이터 유형으로 변경하기

xlwings는 셀에 직접적으로 할당할 수 있는 데이터 유형이 제한되어 있습니다. 리스트, 딕셔너리, 데이터프레임 등의 복잡한 구조는 직접적으로 쓸 수 없습니다. 대신 단순한 데이터 유형인 숫자, 문자열, 또는 리스트를 사용해야 합니다.

import xlwings as xw

# Excel 파일 열기
wb = xw.Book()

# 지원되는 데이터 유형으로 셀에 값 할당
name = 'John'
age = 30
wb.sheets[0]['A1'].value = name
wb.sheets[0]['A2'].value = age

2. 2차원 리스트를 사용하기

Excel에서 여러 데이터를 처리할 때는 2차원 리스트를 사용하는 것이 가장 좋습니다. 이렇게 하면 여러 행과 열을 한 번에 채울 수 있습니다.

import xlwings as xw

# Excel 파일 열기
wb = xw.Book()

# 2차원 리스트를 사용하여 셀에 값 할당
data = [['Name', 'Age'], ['John', 30], ['Jane', 25]]
wb.sheets[0]['A1'].value = data

마무리

이 블로그 글에서는 xlwings에서 발생할 수 있는 'ValueError: Invalid data type' 에러에 대해 다루었습니다. 잘못된 데이터 유형을 피하고, 지원되는 데이터 형식으로 셀에 접근함으로써 이 문제를 해결할 수 있습니다. 코드를 작성할 때는 항상 데이터 유형에 주의하고, Excel과의 원활한 통신을 위해 적절한 형식을 사용하는 것이 중요합니다.

반응형