반응형
Python으로 엑셀 업무 자동화하기 – 매크로 대신 파이썬 활용법(초보 가이드)
엑셀 반복 작업 많음 → 파이썬으로 자동화 추천함. 설치부터 읽기/쓰기 기본, 폴더 일괄 처리, VBA와 비교까지 한 번에 정리함.
왜 파이썬으로 하나?
- 복잡한 전처리/후처리 가능함(Pandas, openpyxl 등 생태계 풍부함)
- 여러 파일 일괄 처리 쉬움(폴더 루프만 돌리면 끝임)
- 윈도우/맥/리눅스 어디서나 실행 가능함
- 버전 관리·자동화 파이프라인과 궁합 좋음
준비물(설치)
- Python 3.x 설치
- 에디터: VS Code 추천(Python 확장 설치)
- 필수 라이브러리 설치:
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로 집계 + 시각화 다룸. 매출 피벗테이블·차트 자동 저장까지 구현함.
반응형
'Python 기본기' 카테고리의 다른 글
[debugging] core dump error (0) | 2023.11.08 |
---|
댓글