본문 바로가기
Python/xlwings

xlwings 속성 오류: 'Range' 객체에 'formula' 속성이 없습니다 해결하기

by PySun 2024. 11. 20.
반응형

소개

xlwings를 사용할 때, 종종 'Range' 객체에 'formula' 속성이 없다라는 오류에 부딪힐 수 있습니다. 이 오류는 Excel의 특정 셀에 수식을 적용하고자 할 때 발생하며, 특정 환경이나 세팅에 따라 내용이 달라질 수 있습니다. 이 포스트에서는 이 에러가 발생하는 이유와, 해결하는 다양한 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'Range' 객체에 'formula' 속성에 접근하려 할 때 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import xlwings as xw

# Excel 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
book = app.books.add()
sheet = book.sheets[0]

# 'A1' 셀에 수식 설정
cell = sheet.range('A1').formula
print(cell)

에러 해결 방법

1. 'formula' 대신 'value' 속성 사용

엑셀의 셀에 수식을 설정하려는 경우, 'formula' 속성 대신 'value' 속성을 먼저 사용하여 셀에 값을 설정해야 합니다. 그런 다음 다시 수식을 설정할 수 있습니다.

import xlwings as xw

# Excel 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
book = app.books.add()
sheet = book.sheets[0]

# 'A1' 셀에 수식 설정
sheet.range('A1').value = '=SUM(1,2)'
cell_value = sheet.range('A1').value
print(cell_value)  # A1 셀의 값 출력

2. range를 사용할 때 쉼표 및 괄호 확인

수식을 설정할 때는 정확한 문법을 따라야 합니다. 쉼표와 괄호가 잘못 사용되면 'Range' 객체가 제대로 인식되지 않습니다. '../'와 같은 절대/상대 참조 방법에도 주의하세요.

import xlwings as xw

# Excel 애플리케이션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
book = app.books.add()
sheet = book.sheets[0]

# 'A1' 셀에 올바른 수식 설정
try:
    sheet.range('A1').formula = '=SUM(1, 2)'
except AttributeError as e:
    print("에러 발생:", e)
else:
    print(sheet.range('A1').formula)  # A1 셀의 수식 출력

마무리

이 블로그 글에서는 xlwings에서 발생하는 'Range' 객체에 'formula' 속성이 없다는 오류에 대해 살펴보았습니다. 'formula' 속성을 사용하기 전에 'value' 속성을 통해 셀에 값을 먼저 띄우거나, 셀의 수식을 설정할 때의 문법에 주의하여 오류를 예방할 수 있습니다. 자동화를 통해 반복적인 작업을 줄이고, 프로그래밍의 재미를 느낄 수 있는 여정을 계속하시길 바랍니다!

반응형