Python/xlwings

xlwings TypeError: 'Worksheet' object is not callable 오류 해결하기

PySun 2024. 11. 25. 22:50
반응형

소개

xlwings를 사용할 때 발생할 수 있는 'TypeError: 'Worksheet' object is not callable' 오류는 상당히 혼란스러울 수 있습니다. 이 오류는 주로 Worksheet 객체를 함수처럼 호출하려 할 때 발생합니다. 이 글에서는 이 오류의 원인과 해결 방법을 살펴보겠습니다.

에러 발생 예시 코드

먼저, 이 오류가 발생할 수 있는 예시 코드를 보겠습니다.

import xlwings as xw

# 새로운 엑셀 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
wb = app.books.add()

# 워크시트 생성
sheet = wb.sheets.add('MySheet')

# 워크시트를 함수처럼 호출 시도
sheet_value = sheet(1, 1).value  # 오류 발생
print(sheet_value)

에러 해결 방법

1. 올바른 속성 접근 사용

위 예제에서 오류의 가장 큰 원인은 Worksheet 객체를 함수처럼 호출하고 있기 때문입니다. 'sheet'를 직접 호출하는 대신 'cells' 속성을 사용하여 특정 셀에 접근해야 합니다.

import xlwings as xw

# 새로운 엑셀 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
wb = app.books.add()

# 워크시트 생성
sheet = wb.sheets.add('MySheet')

# 올바르게 셀에 접근
sheet_value = sheet.cells(1, 1).value  # 수정된 코드
print(sheet_value)

2. 외부 리소스 확인

때로는 xlwings의 다른 메서드나 속성이 잘못 사용될 가능성도 있습니다. 문서나 예제를 참조하여 올바른 사용법을 숙지하는 것이 중요합니다.

import xlwings as xw

# 새로운 엑셀 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
wb = app.books.add()

# 워크시트 생성
sheet = wb.sheets.add('MySheet')

# 문서를 참조하여 올바른 방법 사용
sheet.range("A1").value = "Hello, xlwings!"  # 워크시트의 특정 셀에 접근
print(sheet.range("A1").value)

마무리

이 블로그 글에서는 xlwings에서 발생할 수 있는 'TypeError: 'Worksheet' object is not callable' 오류의 원인과 해결 방법에 대해 설명했습니다. 적절하게 셀이나 범위를 정의하고 확인하는 것이 이 오류를 예방하는 핵심입니다. xlwings를 사용할 때는 항상 문서를 참조하여 올바른 사용법을 따르는 습관을 기르는 것이 좋습니다.

반응형