본문 바로가기
Python/openpyxl

파이썬 openpyxl TypeError: 'NoneType' object is not subscriptable오류 해결하기

by PySun 2024. 5. 17.
반응형

문제 개요

파이썬에서 openpyxl을 사용할 때 'TypeError: 'NoneType' object is not subscriptable' 에러가 발생하면, 이는 NoneType 객체가 배열처럼 인덱싱될 수 없기 때문에 발생하는 오류입니다. 이 글에서는 이러한 TypeError가 발생하는 원인과 해결 방법에 대해 살펴보겠습니다.

에러 발생 예시 코드

먼저, 'TypeError: 'NoneType' object is not subscriptable' 에러가 발생할 만한 간단한 예시 코드를 살펴봅시다.

from openpyxl import Workbook

# Workbook 객체를 생성하고 변수에 할당하지 않음
workbook = Workbook()
worksheet = workbook.active

# NoneType 객체에 대한 인덱싱 시도
cell_value = worksheet['A1']  # 에러 발생: 'NoneType' object is not subscriptable

에러 해결 방법

1. Worksheet 객체가 올바르게 생성되었는지 확인
Worksheet 객체가 None이 아닌 올바른 객체로 생성되었는지 확인합니다.

from openpyxl import Workbook

# Workbook 객체를 생성하고 변수에 할당
workbook = Workbook()
# 올바르게 생성된 Worksheet 객체 가져오기
worksheet = workbook.active

# 올바른 방법으로 인덱싱
cell_value = worksheet['A1']

2. Worksheet 객체가 생성되지 않았을 경우 적절한 방법으로 생성
Worksheet 객체가 아예 생성되지 않은 경우, 적절한 방법으로 생성합니다.

from openpyxl import Workbook

# Workbook 객체 생성
workbook = Workbook()

# 적절한 방법으로 Worksheet 생성
worksheet = workbook.create_sheet("Sheet1")

# 올바른 방법으로 인덱싱
cell_value = worksheet['A1']

마무리

이 글에서는 'TypeError: 'NoneType' object is not subscriptable' 에러에 대한 원인과 해결 방법을 알아보았습니다. Worksheet 객체가 None이 아닌 올바른 객체로 생성되었는지 확인하고, 필요한 경우 생성하는 것으로 이러한 에러를 해결할 수 있습니다.

반응형