본문 바로가기
Python/xlwings

xlwings ValueError: Cells argument must be a range 오류 해결하기

by PySun 2024. 12. 8.
반응형

소개

xlwings를 사용할 때 'ValueError: Cells argument must be a range' 오류가 자주 발생할 수 있습니다. 이 오류는 함수에 잘못된 인자를 전달할 때 발생합니다. 특히, 셀 범위를 지정할 때 요구되는 규격을 따르지 않으면 이러한 문제가 발생합니다. 이번 블로그 글에서는 이 오류의 원인과 해결 방법을 알아보겠습니다.

에러 발생 예시 코드

아래는 'ValueError: Cells argument must be a range' 오류가 발생하는 간단한 코드를 보여줍니다. 이 코드를 실행해 보세요.

import xlwings as xw

# 엑셀 애플리케이션 열기
app = xw.App(visible=True)
wb = app.books.add()

# 잘못된 셀 범위 지정
ws = wb.sheets[0]
ws.cells('A1', 'B2').value = 'Hello World'

에러 해결 방법

1. cells 메서드 올바른 사용법 확인

cells 메서드는 한 개의 인자만 받아 범위를 지정해야 합니다. 두 개의 인자 대신 범위를 문자열로 표현해야 합니다. 예를 들어, 'A1:B2'와 같이 작성해야 합니다.

import xlwings as xw

# 엑셀 애플리케이션 열기
app = xw.App(visible=True)
wb = app.books.add()

# 올바른 셀 범위 지정
ws = wb.sheets[0]
ws.range('A1:B2').value = 'Hello World'

2. range 매서드 사용하기

위에서 보았듯이 ws.range() 메서드를 사용하여 셀 범위를 지정하므로 cells 대신 range를 사용할 수 있습니다. 보다 분명하게 셀 범위를 지정할 수 있습니다.

마무리

이 블로그 글에서는 xlwings에서 발생하는 'ValueError: Cells argument must be a range' 오류에 대한 간단한 해결 방법을 살펴보았습니다. cells 메서드를 사용할 때는 항상 정확한 인자를 전달하고, 필요한 경우 range 메서드를 활용하여 문제를 간단히 해결할 수 있습니다. 엑셀 자동화 작업을 하면서 이러한 작은 오류를 피하기 위해 코드 사용법을 차근차근 확인하는 것이 중요합니다. 언제나 코드가 잘 작동하기를 기원합니다!

반응형