Python
을 활용하여 엑셀 정산 양식 작성을 자동화하는 프로젝트.
파일 제목, 정산 기간 등을 편리하게 입력하기 위해 PyQt5
로 GUI 인터페이스를 제작하였고,
PyInstaller
를 이용하여 exe 파일 1개로 배포하였다.
gui.py
를 작동하여 GUI 창 구동- GUI 창에 정산 기간 시작일과 종료일, 파일 완성본 제목, 정산할 사이트에 로그인할 아이디와 비밀번호 입력
- 정산 시작 버튼 누를 때
make.py
구동하여 이후 자동화 절차 시작 selenium
을 통해 웹사이트에 로그인하고 배송완료, 배송중 파트 거래내역 엑셀파일 다운로드pywin32
(win32com
)을 이용하여 다운로드된 파일에서 정산 대상인 기간에 해당하는 행만 골라 날짜, 상품명, 판매금액 등 원하는 사항을 양식 파일original.xlsx
의 빈칸에 집어넣기- 완성된 양식파일을 GUI 창에서 지정한 제목으로 저장하기
- GUI 개발, 파일 1개 배포 등 프로그램을 주로 활용할 클라이언트의 편의성 고려
- class 기반 객체 지향 개발을 통하여 캡슐화 성공
pywin32
(win32com
)은Python
을 이용하여 엑셀 자원을 컨트롤하는 패키지임을 고려하여, 원하는 방법론을 찾을 때 엑셀 사무자동화나 VBA 가이드를 함께 참고함venv
활용os
패키지 활용하여 배포를 고려한 경로 설정- 적절한
.gitignore
활용 - 디버깅 시 코드의 작동 양상 관찰을 통한 오류 해결
- Copy & Paste 로직이
make.py
작업 중에만 오류를 일으켰는데, 디버깅 과정에서 엑셀 창 2개가 겹쳐 있을 때 아래에 깔려서 잘 보이지 않는 칸은 Paste가 작동하지 않는 것을 발견함 - 이후 Paste의 대상이 되는 양식 파일이 아래에 깔리지 않도록 로직 조정하여 오류 해결
- 업데이트 시 배포 자동화
autoUi.ui
,original.xlsx
등 구동 시 필요한 파일을 함께 배포하는 방법 알아보기- 설치 혹은 구동 시 원하는 형태의 디렉토리 구조를 자동으로 만들어 주도록 하기