파이썬 엑셀 학교 챌린지 #60: 합체 마법! ‘파이썬으로 엑셀 파일 통합하기’

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 이번 주 엑셀 자동화 시리즈의 마지막 시간이 밝았습니다! 어제 여러 장의 시트를 관리하며 정리의 달인이 되셨나요? 오늘은 흩어져 있는 여러 개의 엑셀 파일을 하나로 합치는 ‘파일 통합 마법’을 배워볼 거예요. 백 개의 파일도 파이썬 지팡이 한 번이면 1초 만에 합쳐진답니다!

파이썬 엑셀 학교 챌린지 #60: 합체 마법! ‘파이썬으로 엑셀 파일 통합하기’

1. 흩어진 구슬을 꿰는 ‘데이터 통합’

숙제를 할 때 친구들이 각자 만든 파일을 하나로 모아야 할 때가 있죠? 하나씩 열어서 복사하고 붙여넣는 건 너무 귀찮은 일이에요. 파이썬 비서에게 “이 폴더에 있는 모든 엑셀 파일을 읽어서, 새 종이에 차례대로 적어줘!”라고 부탁하면 비서는 지치지도 않고 완벽하게 데이터를 합쳐준답니다. 이걸 ‘데이터 머징(Merging)’이라고 불러요.

2. 통합 비서의 필수 주문

파일들을 하나로 모으기 위해 필요한 마법 주문들을 배워봐요.

  • os.listdir(): 폴더 안에 어떤 파일들이 있는지 목록을 쫙 뽑아와요.
  • endswith(‘.xlsx’): 수많은 파일 중 진짜 엑셀 파일만 골라내요.
  • values_only=True: 칸의 서식 말고 진짜 알맹이 정보만 빠르게 가져와요.

3. 실전 연습: 1초 만에 엑셀 합체하기 코딩

import os
from openpyxl import load_workbook, Workbook

print("🔗 파이썬 통합 비서가 파일 합치기를 시작합니다!")

# 1. 새 결과 파일 만들기
combined_wb = Workbook()
combined_sheet = combined_wb.active
combined_sheet.title = "통합리포트"
combined_sheet.append(["출처파일", "번호", "내용"]) # 제목 줄

# 2. 합칠 파일들이 있는 폴더 확인 (현재 폴더)
file_list = [f for f in os.listdir() if f.endswith('.xlsx') and f != "combined.xlsx"]

# 3. 파일들을 하나씩 열어서 데이터 복사하기
for file_name in file_list:
    print(f"📂 '{file_name}' 읽는 중...")
    wb = load_workbook(file_name, data_only=True)
    sheet = wb.active
    
    # 첫 번째 줄(제목)을 제외하고 데이터만 가져와요
    for row in sheet.iter_rows(min_row=2, values_only=True):
        # 파일 이름과 함께 데이터를 새 시트에 추가!
        combined_sheet.append([file_name] + list(row))

# 4. 합쳐진 파일 저장
combined_wb.save("combined.xlsx")

print("\n✨ 모든 파일이 'combined.xlsx'로 합쳐졌습니다!")
print(f"총 {len(file_list)}개의 파일을 처리했습니다.")
파이썬 엑셀 학교 챌린지 #60: 합체 마법! ‘파이썬으로 엑셀 파일 통합하기’

4. 더 강력한 통합 대장으로 업그레이드!

우리 통합 비서에게 더 똑똑한 기능을 추가해볼까요?

  • 중복 제거: 여러 파일에 똑같은 내용이 들어있다면 하나만 남기고 지우는 ‘깔끔 비서’ 기능을 넣어보세요.
  • 자동 정렬: 데이터를 다 합친 뒤, 59탄에서 배운 대로 날짜순이나 이름순으로 엑셀을 정렬하게 해보세요.
  • 이메일 발송: 파일이 다 합쳐지면 42탄 영어 읽기 비서가 “통합 완료!”라고 말해주거나, 자동으로 부모님께 이메일을 보내게 해보세요.

5. 가족과 함께하는 ‘우리 집 통합 가계부’

아이와 함께 각자가 따로 기록한 엑셀 파일(예: 아빠의 지출, 아이의 용돈 기입장)을 준비해 보세요. 그리고 파이썬으로 이 파일들을 합쳐서 ‘우리 집 행복 장부’를 만드는 거죠. 아이가 직접 os.listdir() 결과가 화면에 출력되는 것을 보며 ‘컴퓨터가 어떻게 폴더 안의 세상을 인식하는지’ 운영체제의 원리를 이해하게 해주세요. 특히 EduPad 프로젝트에서 여러 명의 아이들이 제출한 퀴즈 결과 엑셀들을 하나로 모아 전체 성적 통계를 내는 선생님용 관리 도구로 활용하기에 정말 완벽한 예제입니다.

마치며: 작별은 새로운 시작!

챌린지의 60번째 미션까지 훌륭하게 완수하셨습니다! 이번 주 엑셀 자동화 시리즈를 통해 반복적인 업무에서 해방되는 즐거움을 느끼셨나요? 주말 동안 여러분만의 자동화 비서를 더 멋지게 다듬어 보시길 바랍니다. 다음 주 월요일 오전 9시에는 드디어 실생활의 끝판왕! 웹에 있는 정보를 자동으로 수집하는 ‘정보 수집가! 파이썬 웹 크롤링’ 시리즈로 찾아오겠습니다!