Programming/Python

openpyxl.utils.exceptions.IllegalCharacterError 해결하기

remake 2023. 11. 27. 10:31

파이썬에서 Excel로 추출을 할때, to_excel  명령어 이후 아래와 같은 에러가 종종 발생하는데요. 특히 웹사이트를 크롤링하는 경우에는 종종 에러가 발생하기도 합니다.

 

illegalcharacterError

바로 지원하지 않는 문자열을 사용해서 엑셀 저장시 에러가 나는 경우입니다.

 

이 에러를 해결하기 위해서는 근본적으로 해당 문자열을 수정해야 하는데요.

 

참고한 블로그의 글입니다.

https://dorudoru.tistory.com/2329

 

파이썬 크롤링시 날짜 에러 해결하기

파이썬에서 웹 크롤링을 할때 날짜 관련된 에러가 발생할 경우가 있습니다. 크롤링시 Datetime 에러 먼저 살펴볼 것은 파이썬의 datetime이 지원하지 않는 포맷이어서 발생하는 에러입니다. datetime은

dorudoru.tistory.com

  File "C:\python\Lib\site-packages\openpyxl\cell\cell.py", line 165, in check_string
    raise IllegalCharacterError(f"{value} cannot be used in worksheets.")
openpyxl.utils.exceptions.IllegalCharacterError: 게임 크리에이터와 팬들의 축제 ‘유튜브 크리에이터 타운: 게임페스타’, 12월 1일개최 cannot be used in worksheets.

 

정확한 문구를 안다면 해당 문구를 아래의 sub을 통해서 수정해주시면 됩니다.

from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE

text1 = ILLEGAL_CHARACTERS_RE.sub(r'',text1)

 

그리고 정확한 문자열을 모른다면 다른 방법도 있는데요.

 

바로 엑셀을 저장하는 엔진을 변경하는 방법인데요. xlsxwriter를 패키지를 설치한 다음

 

engine에서 xlsxwriter를 설정해주시면 됩니다.

 

pip install xlsxwriter
df.to_excel('test.xlsx', engine='xlsxwriter')

이러한 방법으로 2개의 파일을 수정하면 에러를 해결할 수 있는데요.

 

사용하기 편한 방법으로 수정하여 사용하시면 됩니다.