- 여러 엑셀 파일을 하나로 자동 통합 - 원본 파일명 추적 기능 - 에러 처리 및 진행 상황 표시 - 샘플 데이터 생성 스크립트 포함 Features: - Support .xlsx, .xls, .xlsm files - Automatic timestamp in output filename - Error handling for corrupted files - Real-time progress display
223 lines
5.6 KiB
Markdown
223 lines
5.6 KiB
Markdown
# 📊 엑셀 데이터 통합 자동화 (Excel Data Merger RPA)
|
||
|
||
여러 개의 엑셀 파일을 클릭 한 번으로 자동 통합하는 RPA 프로그램입니다.
|
||
|
||
## 🎯 프로젝트 개요
|
||
|
||
### 해결하는 문제
|
||
- 매월/매주 여러 부서에서 받는 엑셀 파일을 하나로 합쳐야 할 때
|
||
- 수작업 복사/붙여넣기로 인한 시간 낭비 (5시간 → 10초)
|
||
- 데이터 입력 오류 제거
|
||
- 반복 작업 자동화
|
||
|
||
### 주요 기능
|
||
✅ 여러 엑셀 파일 자동 통합 (.xlsx, .xls, .xlsm)
|
||
✅ 원본 파일명 추적 (어느 파일에서 왔는지)
|
||
✅ 자동 타임스탬프 (통합_날짜_시간.xlsx)
|
||
✅ 에러 처리 (일부 파일 실패해도 계속 진행)
|
||
✅ 진행 상황 실시간 표시
|
||
✅ 통합 전 미리보기
|
||
|
||
## 🚀 빠른 시작
|
||
|
||
### 1. 설치
|
||
|
||
```bash
|
||
# 저장소 클론
|
||
git clone https://github.com/gahusb/excel-merger-rpa.git
|
||
cd excel-merger-rpa
|
||
|
||
# 의존성 설치
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. 사용법
|
||
|
||
#### 기본 사용
|
||
```bash
|
||
# 1. input 폴더에 엑셀 파일들을 넣기
|
||
# 2. 프로그램 실행
|
||
python excel_merger.py
|
||
```
|
||
|
||
#### 예제
|
||
```
|
||
excel-merger-rpa/
|
||
├── input/ # 여기에 엑셀 파일 넣기
|
||
│ ├── 1월_매출.xlsx
|
||
│ ├── 2월_매출.xlsx
|
||
│ └── 3월_매출.xlsx
|
||
├── output/ # 통합 파일이 여기에 생성됨
|
||
│ └── 통합데이터_20250210_143022.xlsx
|
||
└── excel_merger.py # 실행 파일
|
||
```
|
||
|
||
### 3. 실행 화면
|
||
|
||
```
|
||
==================================================
|
||
📊 엑셀 데이터 통합 자동화 프로그램
|
||
Excel Data Merger RPA
|
||
==================================================
|
||
|
||
📋 파일 목록:
|
||
--------------------------------------------------
|
||
1. 1월_매출.xlsx
|
||
- 150행 × 5열
|
||
2. 2월_매출.xlsx
|
||
- 180행 × 5열
|
||
3. 3월_매출.xlsx
|
||
- 170행 × 5열
|
||
--------------------------------------------------
|
||
총 3개 파일, 예상 통합 행 수: 500행
|
||
|
||
계속하시겠습니까? (y/n): y
|
||
|
||
📂 발견된 파일 수: 3개
|
||
--------------------------------------------------
|
||
1. 1월_매출.xlsx 읽는 중...
|
||
✓ 150행 읽기 완료
|
||
2. 2월_매출.xlsx 읽는 중...
|
||
✓ 180행 읽기 완료
|
||
3. 3월_매출.xlsx 읽는 중...
|
||
✓ 170행 읽기 완료
|
||
|
||
🔄 데이터 통합 중...
|
||
💾 파일 저장 중: output/통합데이터_20250210_143022.xlsx
|
||
|
||
==================================================
|
||
✅ 통합 완료!
|
||
📊 총 500행 통합됨
|
||
📁 저장 위치: output/통합데이터_20250210_143022.xlsx
|
||
==================================================
|
||
```
|
||
|
||
## 📋 요구사항
|
||
|
||
- Python 3.8 이상
|
||
- pandas
|
||
- openpyxl (xlsx 파일)
|
||
- xlrd (xls 파일)
|
||
|
||
## 🎨 사용 사례
|
||
|
||
### 1. 월별 매출 데이터 통합
|
||
```
|
||
각 지점에서 제출한 월별 매출 보고서를 본사에서 통합
|
||
→ 5시간 작업이 10초로 단축
|
||
```
|
||
|
||
### 2. 부서별 인원 현황 통합
|
||
```
|
||
각 부서 인사담당자가 작성한 인원 현황을 인사팀에서 통합
|
||
→ 실수 없이 정확한 데이터
|
||
```
|
||
|
||
### 3. 재고 현황 통합
|
||
```
|
||
여러 창고의 재고 데이터를 하나로 합쳐서 분석
|
||
→ 재고 관리 효율 증가
|
||
```
|
||
|
||
## 🛠 커스터마이징
|
||
|
||
### 코드에서 사용하기
|
||
|
||
```python
|
||
from excel_merger import ExcelMerger
|
||
|
||
# ExcelMerger 객체 생성
|
||
merger = ExcelMerger(
|
||
input_folder="my_data", # 입력 폴더
|
||
output_folder="merged_data" # 출력 폴더
|
||
)
|
||
|
||
# 통합 실행
|
||
df, output_path = merger.merge_excel_files(
|
||
output_filename="최종통합.xlsx" # 사용자 지정 파일명
|
||
)
|
||
|
||
# 결과 확인
|
||
print(f"총 {len(df)}행 통합됨")
|
||
print(f"파일 위치: {output_path}")
|
||
```
|
||
|
||
### 원본 파일명 컬럼 제거하기
|
||
|
||
`excel_merger.py` 67번째 줄:
|
||
```python
|
||
# 이 줄을 주석 처리하면 원본 파일명 컬럼이 추가되지 않음
|
||
# df['원본파일'] = filename
|
||
```
|
||
|
||
### 특정 시트만 읽기
|
||
|
||
```python
|
||
df = pd.read_excel(file, sheet_name="Sheet1") # 특정 시트
|
||
```
|
||
|
||
## 🎯 실제 효과
|
||
|
||
| 항목 | 수작업 | 자동화 | 절감 |
|
||
|------|--------|--------|------|
|
||
| **시간** | 5시간 | 10초 | 99.9% |
|
||
| **정확도** | 95% | 100% | +5% |
|
||
| **비용** | 시급 1만원 × 5시간 | 무료 | 5만원 |
|
||
|
||
**월 20회 작업 시:**
|
||
- 시간 절감: 100시간/월
|
||
- 비용 절감: 100만원/월
|
||
|
||
## 📂 프로젝트 구조
|
||
|
||
```
|
||
excel-merger-rpa/
|
||
├── excel_merger.py # 메인 프로그램
|
||
├── requirements.txt # 의존성 목록
|
||
├── README.md # 이 파일
|
||
├── .gitignore # Git 제외 파일
|
||
├── input/ # 입력 폴더 (엑셀 파일 넣기)
|
||
└── output/ # 출력 폴더 (통합 파일 생성)
|
||
```
|
||
|
||
## 🐛 트러블슈팅
|
||
|
||
### "ModuleNotFoundError: No module named 'pandas'"
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### "Permission denied" 에러
|
||
- 출력 파일이 엑셀에서 열려있는지 확인
|
||
- 파일을 닫고 다시 실행
|
||
|
||
### 한글 깨짐
|
||
```python
|
||
# excel_merger.py에서 encoding 추가
|
||
df.to_excel(output_path, index=False, encoding='utf-8-sig')
|
||
```
|
||
|
||
## 💡 추가 기능 아이디어
|
||
|
||
- [ ] GUI 버전 (tkinter)
|
||
- [ ] 특정 시트만 선택해서 통합
|
||
- [ ] CSV 파일도 지원
|
||
- [ ] 중복 데이터 자동 제거
|
||
- [ ] 데이터 정제 (공백 제거, 날짜 형식 통일)
|
||
- [ ] 스케줄러 (매일 자동 실행)
|
||
|
||
## 📞 문의
|
||
|
||
프로젝트 관련 문의 또는 커스터마이징 요청:
|
||
- **이메일**: bgg8988@gmail.com
|
||
- **포트폴리오**: https://jaengseung-made.com
|
||
- **전화**: 010-3907-1392
|
||
|
||
## 📄 라이선스
|
||
|
||
MIT License - 자유롭게 사용, 수정, 배포 가능합니다.
|
||
|
||
---
|
||
|
||
**Made by 쟁승메이드** | [더 많은 RPA 프로젝트 보기](https://jaengseung-made.com)
|