본문 바로가기
Python/xlwings

xlwings RuntimeError: No active workbook 오류 해결하기

by PySun 2024. 12. 21.
반응형

소개

xlwings를 사용하여 Excel을 자동화하려다가 'RuntimeError: No active workbook' 오류가 발생할 수 있습니다. 이 오류는 Excel 애플리케이션 내에서 활성화된 워크북이 없을 때 발생합니다. 본 블로그 글에서는 이 오류의 원인과 해결 방법에 대해 설명하겠습니다.

에러 발생 예시 코드

먼저, 'RuntimeError: No active workbook' 오류가 발생하게 만드는 간단한 예시 코드를 살펴봅시다.

import xlwings as xw

# 현재 활성화된 워크북에 접근 시도
wb = xw.Book()
print(wb.name)

에러 해결 방법

1. Excel 파일 열기

xlwings의 Book 객체를 생성할 때 파일 경로를 명시하여 Excel 파일을 열어줘야 합니다. 아래와 같이 파일 경로를 지정하여 활성 워크북을 생성합니다.

import xlwings as xw

# Excel 파일 열기 (파일 경로를 지정)
wb = xw.Book('example.xlsx')
print(wb.name)

2. 이미 열려있는 워크북 접근하기

엑셀에서 이미 열려있는 워크북에 접근하고자 할 경우에는 'xw.books'를 사용하여 열린 모든 워크북을 조회한 뒤, 원하는 워크북을 선택해야 합니다.

import xlwings as xw

# 열려있는 모든 워크북 확인
books = xw.books

# 특정한 워크북 오늘(이름이 'example.xlsx'인 워크북)
for book in books:
    if book.name == 'example.xlsx':
        wb = book
        break
else:
    print("워크북을 열어주세요.")

# 워크북의 이름 출력
print(wb.name)

3. Excel 애플리케이션 상태 확인하기

xlwings가 Excel과 제대로 통신하고 있는지 확인할 필요가 있습니다. Excel이 실행중인지, 필요한 파일이 열려 있는지 다시 한 번 점검하세요.

마무리

이 글에서는 'RuntimeError: No active workbook' 오류를 해결하기 위한 방법들을 살펴보았습니다. Excel 파일을 명시적으로 열거나, 이미 열린 워크북에 접근하는 방법을 통해 이 문제를 극복할 수 있습니다. xlwings 사용 시, Excel의 상태와 파일을 항상 주의 깊게 확인하여 원활한 자동화를 즐기세요!

반응형