본문 바로가기
Python/xlwings

xlwings RuntimeError: This session is not started 오류 해결하기

by PySun 2024. 12. 20.
반응형

소개

xlwings 라이브러리를 사용하다 보면 'RuntimeError: This session is not started'라는 오류에 직면할 수 있습니다. 이 오류는 주로 xlwings를 통해 Excel 파일과 상호작용을 시도할 때 Excel 세션이 시작되지 않았을 때 발생합니다. 본 블로그에서는 이 오류의 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

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

import xlwings as xw

# Excel 앱에 연결
app = xw.App(visible=True)

# 새로운 워크북 생성
wb = xw.Workbook()

# 셀에 값 입력 (세션이 시작되지 않음)
sheet = wb.sheets[0]
sheet.range('A1').value = 'Hello, xlwings!'

에러 해결 방법

1. Excel 세션 시작 확인

xlwings를 사용하기 전에 Excel 세션이 시작되었는지 확인해야 합니다. 이를 위해서는 `xw.App()` 메서드를 호출 시에 'start' 인자를 명시적으로 설정하는 것이 좋습니다.

import xlwings as xw

# Excel 앱에 연결 및 세션 시작
app = xw.App(visible=True)

# 새로운 워크북 생성
wb = xw.Book()

# 셀에 값 입력
sheet = wb.sheets[0]
sheet.range('A1').value = 'Hello, xlwings!'

2. 오류 메시지 피하기 위한 try-except 사용

세션 시작 시 발생할 수 있는 오류를 방지하기 위해서 `try-except` 구문을 사용해보세요. 이를 통해 세션 시작 실패 시 사용자에게 메시지를 제공할 수 있습니다.

import xlwings as xw

try:
    # Excel 앱에 연결 및 세션 시작
    app = xw.App(visible=True)
    wb = xw.Book()
    sheet = wb.sheets[0]
    sheet.range('A1').value = 'Hello, xlwings!'
except RuntimeError as e:
    print(f"오류 발생: {e}")
finally:
    app.quit()  #ㅇ 세션 종료

마무리

이 블로그 글에서는 xlwings에서 발생하는 'RuntimeError: This session is not started' 오류에 대해 살펴보았습니다. Excel 세션을 적절히 시작하고 오류 처리를 통해 이 문제를 예방하거나 해결하는 방법을 알아보았습니다. 자동화 과정에서 발생할 수 있는 여러 문제를 미리 예측하고 적절히 대처하는 것이 중요합니다. 성공적인 자동화를 이루시길 바랍니다!

반응형