Giter Club home page Giter Club logo

autoexcelgui's Introduction

프로젝트 안내

Python을 활용하여 엑셀 정산 양식 작성을 자동화하는 프로젝트. 파일 제목, 정산 기간 등을 편리하게 입력하기 위해 PyQt5로 GUI 인터페이스를 제작하였고, PyInstaller를 이용하여 exe 파일 1개로 배포하였다.

프로그램 작동 세부 절차

  1. gui.py를 작동하여 GUI 창 구동
  2. GUI 창에 정산 기간 시작일과 종료일, 파일 완성본 제목, 정산할 사이트에 로그인할 아이디와 비밀번호 입력
  3. 정산 시작 버튼 누를 때 make.py 구동하여 이후 자동화 절차 시작
  4. selenium을 통해 웹사이트에 로그인하고 배송완료, 배송중 파트 거래내역 엑셀파일 다운로드
  5. pywin32 (win32com)을 이용하여 다운로드된 파일에서 정산 대상인 기간에 해당하는 행만 골라 날짜, 상품명, 판매금액 등 원하는 사항을 양식 파일 original.xlsx의 빈칸에 집어넣기
  6. 완성된 양식파일을 GUI 창에서 지정한 제목으로 저장하기

알게 된 것

작업 시 주안점

  • GUI 개발, 파일 1개 배포 등 프로그램을 주로 활용할 클라이언트의 편의성 고려

기술적 발전 & 발견

  1. class 기반 객체 지향 개발을 통하여 캡슐화 성공
  2. pywin32 (win32com)은 Python을 이용하여 엑셀 자원을 컨트롤하는 패키지임을 고려하여, 원하는 방법론을 찾을 때 엑셀 사무자동화나 VBA 가이드를 함께 참고함
  3. venv 활용
  4. os 패키지 활용하여 배포를 고려한 경로 설정
  5. 적절한 .gitignore 활용
  6. 디버깅 시 코드의 작동 양상 관찰을 통한 오류 해결
  • Copy & Paste 로직이 make.py 작업 중에만 오류를 일으켰는데, 디버깅 과정에서 엑셀 창 2개가 겹쳐 있을 때 아래에 깔려서 잘 보이지 않는 칸은 Paste가 작동하지 않는 것을 발견함
  • 이후 Paste의 대상이 되는 양식 파일이 아래에 깔리지 않도록 로직 조정하여 오류 해결

보완할 점

  1. 업데이트 시 배포 자동화
  2. autoUi.ui, original.xlsx 등 구동 시 필요한 파일을 함께 배포하는 방법 알아보기
  3. 설치 혹은 구동 시 원하는 형태의 디렉토리 구조를 자동으로 만들어 주도록 하기

autoexcelgui's People

Contributors

minjoo999 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.