반응형
소개
xlwings를 사용하다가 'TypeError: Object not convertible to Excel' 오류가 발생하면 당황스러울 수 있습니다. 이 에러는 보통 파이썬 객체가 Excel에서 이해하지 못하는 형식일 때 발생합니다. 이 블로그 글에서는 이 에러의 원인과 해결 방법에 대해 알아보겠습니다.
에러 발생 예시 코드
아래는 'TypeError: Object not convertible to Excel' 오류가 발생할 수 있는 간단한 예시 코드입니다.
import xlwings as xw
# 새로운 워크북 생성
wb = xw.Book()
# 비정상적인 데이터 타입 설정
data = {1: 'one', 2: 'two'} # dictionary는 Excel로 변환할 수 없음
# 엑셀에 데이터 쓰기 시도
wb.sheets[0].range('A1').value = data
에러 해결 방법
1. 호환 가능한 데이터 타입으로 변환
Excel은 숫자, 문자열, 리스트, NumPy 배열 등 다양한 데이터 타입을 지원하지만, 딕셔너리와 같은 특정 형식은 지원하지 않습니다. 따라서 딕셔너리를 리스트 또는 다른 적절한 형식으로 변환해야 합니다.
import xlwings as xw
# 새로운 워크북 생성
wb = xw.Book()
# 호환 가능한 데이터 타입으로 변환 - 리스트로
data = [('one',), ('two',)] # 리스트 안의 튜플 형식
# 엑셀에 데이터 쓰기
wb.sheets[0].range('A1').value = data
2. 데이터가 적절한 형식인지 확인
엑셀에 쓰기 전에 데이터가 올바른 형식임을 항상 확인하는 것이 좋습니다. 이를 위해, 데이터 타입을 체크하는 조건문을 추가할 수 있습니다.
import xlwings as xw
# 새로운 워크북 생성
wb = xw.Book()
# 데이터 준비
data = {1: 'one', 2: 'two'}
# 데이터 타입 확인 후 변환
if isinstance(data, dict):
data = list(data.values()) # 딕셔너리의 값들을 리스트로 변환
# 엑셀에 데이터 쓰기
wb.sheets[0].range('A1').value = data
마무리
이 블로그 글에서는 'TypeError: Object not convertible to Excel' 오류에 대한 다양한 해결 방법을 살펴보았습니다. 데이터의 형식이 엑셀에서 지원되는 형식인지 확인하고, 필요한 경우 적절하게 변환함으로써 이 문제를 피할 수 있습니다. xlwings와 같은 라이브러리를 사용할 때는 항상 데이터 타입에 주의하여 작업하는 것이 중요합니다.
반응형
'Python > xlwings' 카테고리의 다른 글
파이썬 xlwings.add_in 함수 활용하기 (0) | 2024.12.19 |
---|---|
파이썬 xlwings.get_sheet 함수 활용하기 (0) | 2024.12.19 |
xlwings ValueError: Too few arguments 오류 해결하기 (0) | 2024.12.18 |
xlwings PermissionError: Cannot overwrite existing file 오류 해결하기 (0) | 2024.12.18 |
xlwings AttributeError: 'Sheet' object has no attribute 'name' 오류 해결하기 (0) | 2024.12.18 |