본문 바로가기
Python 기본기

Python으로 엑셀 업무 자동화하기 – 매크로 대신 파이썬 활용법(초보 가이드)

by 두뇌향상중 2025. 8. 12.
반응형

Python으로 엑셀 업무 자동화하기 – 매크로 대신 파이썬 활용법(초보 가이드)

엑셀 반복 작업 많음 → 파이썬으로 자동화 추천함. 설치부터 읽기/쓰기 기본, 폴더 일괄 처리, VBA와 비교까지 한 번에 정리함.

왜 파이썬으로 하나?

  • 복잡한 전처리/후처리 가능함(Pandas, openpyxl 등 생태계 풍부함)
  • 여러 파일 일괄 처리 쉬움(폴더 루프만 돌리면 끝임)
  • 윈도우/맥/리눅스 어디서나 실행 가능함
  • 버전 관리·자동화 파이프라인과 궁합 좋음

준비물(설치)

  1. Python 3.x 설치
  2. 에디터: VS Code 추천(Python 확장 설치)
  3. 필수 라이브러리 설치:
    pip install openpyxl pandas

회사 PC 정책으로 pip 제한 있을 수 있음 → 가상환경(python -m venv .venv) 사용 권장함.

기본: 엑셀 읽기

import openpyxl

# 엑셀 파일 열기
wb = openpyxl.load_workbook("sample.xlsx")
ws = wb.active  # 첫 시트

# 1~5행 출력
for row in ws.iter_rows(min_row=1, max_row=5, values_only=True):
    print(row)

쓰기/저장: 결과 파일 만들기

# 셀 수정 후 저장
ws["B2"] = "자동화 완료"
wb.save("sample_updated.xlsx")

신규 파일로 저장하면 원본 보존 가능함. 배치 처리에 적합함.

실전: 폴더 내 모든 엑셀 일괄 수정

from pathlib import Path
import openpyxl

for xlsx in Path("reports").glob("*.xlsx"):
    wb = openpyxl.load_workbook(xlsx)
    ws = wb.active
    ws["D1"] = "처리일자"
    ws["D2"] = "2025-08-12"
    wb.save(xlsx.with_name(xlsx.stem + "_done.xlsx"))
  • 공통 머리글/요약 시트 추가, 상태 컬럼 생성 등에 응용 가능함
  • Pandas와 조합하면 집계·피벗·차트 자동화 가능함

VBA vs Python 비교(요약)

항목 VBA(매크로) Python
환경 엑셀 내부에 종속됨 OS 독립적, 서버/배치 적합함
확장성 엑셀 중심 기능 위주 Pandas/NumPy 등 생태계 활용 가능함
협업/버전관리 상대적으로 어려움 Git 표준화 쉬움
학습 장벽 엑셀 사용자에 친숙함 기초 문법 필요하나 범용성 큼

 

실무 체크리스트

  • 공유 드라이브 권한, 잠금 파일(~$) 충돌 확인 필요함
  • 머지셀/서식 보존 필요 시 openpyxl 유지, 대량 처리 시 pandas 변환 고려함
  • 주기 실행은 작업 스케줄러/크론에 등록하면 편함

관련 글(내부 링크)

다음 편에서 Pandas로 집계 + 시각화 다룸. 매출 피벗테이블·차트 자동 저장까지 구현함.

© 2025 공부하는 프로그래머

반응형

'Python 기본기' 카테고리의 다른 글

[debugging] core dump error  (0) 2023.11.08

댓글