라이브러리 tkinter 및 openpyxl을 사용해서 엑셀을 불러오고 자동화하여 데이터를 정리해보기
모듈 파일 file_dialog.py 파일을 생성하여 main.py에서 import하여 사용
file_dialog.py에서 tkinter을 통해 엑셀 파일 디렉토리를 불러온 후 해당 디렉토리를 load_workbook을 통해 파이썬으로 불러온다.
import file_dialog
from openpyxl import Workbook
from openpyxl import load_workbook
load_xlsx = load_workbook(filename = file_dialog.file_path[0]) # file_dialog 모듈에서 받은 디렉토리를 이용하여 엑셀 파일을 불러온다.
ws = load_xlsx['First'] # 엑셀 파일이 제대로 불러왔는지 sheet를 불러와서 해당 시트에 존재하는 데이터값 하나 출력
print(ws['B2'])
load_workbook(filename = file_dialog.file_path[0])파일 디렉토리를 불러올 때 file_dialog.file_path[0]을 통해 불러온 이유는 type(file_dialog.file_path)로 디렉토리의 타입을 보면 알겠지만 tuple형이다.
따라서 그냥 file_dialog.file_path를 통해 엑셀 파일을 불러오면 Type error이 발생한다.
filedialog.askopenfilenames 함수를 통해 파일 불러오기 창을 열고 열고자 하는 엑셀파일의 디렉토리를 가져오자
from tkinter import *
from tkinter import filedialog
excel_ext = r"*.xlsx *.xls *.csv"
file_path = filedialog.askopenfilenames(title = "파일을 선택하세요", \
filetypes=(("Excel File", excel_ext), ("all types", "*.*")), \
initialdir="/Users/hwanseob.lee")
excel_ext = r"*.xlsx *.xls *.csv"여기서 r""은 raw string으로 경로를 지정할 때 유용하고, 유니코드 에러시 해결 가능하다.
python main.py을 통해 메인 파일을 실행하면

해당 엑셀파일의 First sheet의 B2가 출력된다.