본문 바로가기

Python

[PYTHON] 엑셀 취합 by ChatGPT

반응형

https://youtu.be/O7eD8te3ijM

 

- YouTube

 

www.youtube.com

 

이번에는 직장에서 엑셀 취합할 업무가 많은 분들에게 도움이 될만한 엑셀 취합하기입니다. 기존에 autohotkey 로 작성했던 엑셀 취합하는 프로그램을 Python으로 작성해 보겠습니다. 물론 ChatGPT한테 기본적인 것을 작성하라고 하겠습니다. ChatGPT에 요청할 스크립트는 대략 아래와 같습니다.

"사용자로부터 엑셀이 저장되어 있는 폴더 경로를 입력으로 받고(기본값 d:\data), 취합할 시트명을 입력으로 받으며(기본값 Sheet1), 취합을 시작할 행을 역시 입력 받고(기본값 2), 마지막행 포함 여부를 옵션으로 선택하며(기본값 마지막행 제외), 결과 파일이 생성될 경로를 주고(기본값 : d:\Result.xlsx), 엑셀 취합이 진행되는 과정으로 프로그레스바로 보여주도록 하는 Python code를 tkinter모듈을 사용하여 작성해줘" 

이후 몇가지 수정 요청을 거쳐서 작성된 프로그램인데, autohotkey로 작성된 버전 v1.5 버전에 비해 속도가 훨씬 빨라서, 엑셀 취합을 자주 하시는 분께는 도움이 될듯 합니다. 한가지 아쉬운 점은 기존 엑셀 서식을 그대로 가져오도록 여러번 시도를 하였으나, 서식을 복사하는 내용을 진행하면서 빈칸이 생기는 문제가 생겨서 일단 서식은 나중에 사용자가 손을 보셔야 할듯 합니다. 여러가지 방법으로 서식도 맞추면서 속도도 빨리 하는 방법을 강구하였으나, 쉽지 않았습니다. 하지만 결과 파일이 굉장히 빨리 생성되어, 만족할만 하다고 생각됩니다.

한가지 단점은 엑셀 파일에 암호가 걸려 있거나 하면 동작이 안 됩니다. 그 부분은 감안하시고 사용하시면 되겠습니다.

ChatGPT가 만든 Python code를 실행한 결과 화면입니다.

 

 

취합할 엑셀 파일을 Folder Path에 모두 넣어 두고, 시트명이 맞는지 확인하고, 몇 행부터 취합할지를 선택하고, 마지막행 취합 여부를 옵션으로 선택하고, 취합 결과 파일이름을 원하는대로 설정해 준 후 "Merge"단추를 누르면 순식간에 취합이 됩니다. 

아래는 샘플로 만든 취합할 엑셀 파일 몇가지입니다.

 

<team1.xlsx>

No 항목 단가 수량 금액 비고
1 연필 500 3 1500  
2 공책 1000 4 4000  
3 600 2 1200  
4 지우개 700 5 3500  
  합계     10200  

 

<team2.xlsx>

No 항목 단가 수량 금액 비고
1 책받침 500 3 1500  
2 마우스 1000 4 4000  
3 가위 600 2 1200  
  합계     6700  

 

 

<team3.xlsx>

No 항목 단가 수량 금액 비고
1 연필 500 3 1500  
2 만년필 3000 2 6000  
3 크레파스 2000 5 10000  
  합계     17500  

 

<결과 파일 : Result.xlsx>

No 항목 단가 수량 금액 비고
1 연필 500 3 1500  
2 공책 1000 4 4000  
3 600 2 1200  
4 지우개 700 5 3500  
1 책받침 500 3 1500  
2 마우스 1000 4 4000  
3 가위 600 2 1200  
1 연필 500 3 1500  
2 만년필 3000 2 6000  
3 크레파스 2000 5 10000  

 

현재 화면에는 서식이 복사된 것으로 보이지만, 실제 엑셀은 서식이 복사되지 않았습니다. 그래서 사용자가 마지막 서식 작업은 진행하셔야 합니다. 만약 본 기능외에 추가적으로 필요한 기능이 있다면 본 python code를 활용해서 추가 수정을 해 보시기 바랍니다.

 

기존에 autohotkey로 코딩작업도 오래 걸렸고, 실제 실행하는 시간도 제법 오래 걸리던 작업이, 코딩 작업도 ChatGPT의 도움으로 쉽게 하고, 실행시간도 아주 빨라져서 만족스럽다고 할 수 있습니다.

 

아래는 최종 작성된 Python code입니다.

MergeExcel_V2.2.py
0.00MB

 

실행파일은 사이즈가 커서 만드는 방법만 소개합니다.

pyinstaller -w -F MergeExcel_V2.2.py

 

반응형