inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

문서의 홀수/짝수 페이지만 삭제하기

엑셀 xlsm파일 불러오기

해결된 질문

1023

이종익

작성한 질문수 7

1

class App:

def init(self, master):

self.master = master

self.file_path = 'C:\coding'

self.wb = None

master.title("Excel 파일 불러오기")

self.label = tk.Label(master, text="Excel 파일을 선택하세요.")

self.label.pack()

self.button = tk.Button(master, text="파일 선택", command=self.open_file_dialog)

self.button.pack()

self.file_path = None # 파일 경로를 저장할 변수를 초기화합니다.

def open_file_dialog(self):

self.file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx;*.xls;*.xlsm")])

if self.file_path:

try:

df = pd.read_excel(self.file_path)

self.label.config(text="파일이 성공적으로 불러와졌습니다.")

except pd.errors.ParserError:

self.label.config(text="유효한 엑셀 파일이 아닙니다.")

else:

self.label.config(text="파일을 선택하지 않았습니다.")

이 엑셀을 매크로가 있는 문서에 실행시키면

아래와 같은 에러가 뜹니다.

실행는 되는데 에러가 신경쓰입니다

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 1948, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\Public\Documents\ESTsoft\CreatorTemp\ipykernel_20568\1648523354.py", line 35, in open_file_dialog
    df = pd.read_excel(self.file_path)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\util\_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\io\excel\_base.py", line 482, in read_excel
    io = ExcelFile(io, storage_options=storage_options, engine=engine)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\io\excel\_base.py", line 1695, in __init__
    self._reader = self._engines[engine](self._io, storage_options=storage_options)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\io\excel\_openpyxl.py", line 557, in __init__
    super().__init__(filepath_or_buffer, storage_options=storage_options)
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\io\excel\_base.py", line 545, in __init__
    self.book = self.load_workbook(self.handles.handle)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\io\excel\_openpyxl.py", line 568, in load_workbook
    return load_workbook(
           ^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\excel.py", line 346, in load_workbook
    reader.read()
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\excel.py", line 303, in read
    self.parser.assign_names()
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\openpyxl\reader\workbook.py", line 109, in assign_names
    sheet.defined_names[name] = defn
    ^^^^^^^^^^^^^^^^^^^
AttributeError: 'ReadOnlyWorksheet' object has no attribute 'defined_names'

python 엑셀

답변 2

1

일코

헉 아래 인프런 AI 인턴이 정확한 답변을 제시해준 것 같아요!

pip install --upgrade openpyxl

을 실행하여 openpyxl을 업데이트하신 후에 다시 실행해 보시기 바랍니다^^

 

멋진 코드 짜셨네요!

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 엑셀 xlsm 파일 불러오기 코드를 작성하고 있는데, 에러가 발생하는 상황입니다. 해당 에러는 ReadOnlyWorksheet 객체가 defined_names 속성을 가지지 않기 때문에 발생하는 것으로 보입니다. 이를 해결하기 위해 openpyxl 라이브러리를 업그레이드해보세요. 예를 들면, pip install openpyxl –upgrade 명령어를 입력하시면 업그레이드가 가능합니다. 이후에도 에러가 발생한다면, openpyxl 라이브러리가 최신 버전인지 확인해보시기 바랍니다. 감사합니다.

섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?

0

77

1

hwp 병렬 작업시 클립보드 충돌문제

0

61

1

본문을 각주로 내리는 법

1

93

1

한글 자동화 삽도 삽입!!

1

388

2

한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ

1

240

2

빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다

1

120

2

사무실 컴퓨터ㅠ

0

98

2

글자입력 여러번 실행기

0

70

1

현재 커서 문단에 아무런 내용이 없는지 확인하기

1

103

1

특정 스타일을 찾아 이동하는 방법

1

166

2

한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?

1

1134

1

win32com 으로 hwp 문자열 검색하기 문의

1

224

2

[응용] 엑셀문서 값을 필드에 입력하기 질

1

124

1

표 병합하기 관련

0

143

0

메타태그 삽입 자동화

0

191

1

스크립트 매크로 초기화 하고 싶습니다.

1

274

2

한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.

1

271

1

표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기

1

280

2

스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.

1

286

0

하위의 여러 폴더 중 특정폴더의 사진만 추출하기

1

348

2

한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.

1

680

1

보유 특허 검색 페이지에서 검색이 되지 않습니다.

1

142

1

hwp 페이지별 분할 저장하는 코드 관련 문의

0

454

0

한글 문서에 사용된 폰트명 추출

1

652

1