엑셀 작업은 많은 직장인과 실무자들에게 일상입니다. 반복적으로 데이터를 입력하거나, 보고서를 생성하고, 계산을 수행하는 업무는 시간이 오래 걸리지만 정형화된 작업이기도 합니다. 파이썬을 활용하면 이런 엑셀 작업을 자동화하여 효율을 극대화할 수 있습니다. 이 글에서는 openpyxl과 pandas를 이용한 엑셀 자동화 방법을 실제 코드와 함께 정리해 드립니다. 파이썬 초보자도 바로 따라 할 수 있는 실전 중심 가이드입니다.
openpyxl로 엑셀 파일 읽고 쓰기
openpyxl은 .xlsx 파일을 직접 생성, 수정, 저장할 수 있는 라이브러리입니다. 주로 셀 단위 작업이 필요한 경우에 많이 사용되며, 시트 생성, 셀 서식, 색상 지정, 차트 추가 등 다양한 기능을 제공합니다.
from openpyxl import Workbook, load_workbook
# 새 엑셀 파일 만들기
wb = Workbook()
ws = wb.active
ws.title = "보고서"
# 데이터 입력
ws['A1'] = "이름"
ws['B1'] = "매출"
ws.append(["홍길동", 100000])
ws.append(["김철수", 200000])
# 파일 저장
wb.save("sales_report.xlsx")
기존 파일을 수정할 경우 load_workbook("파일명.xlsx")으로 불러와서 동일한 방식으로 편집할 수 있습니다. 또한 for 루프를 통해 대량의 데이터를 자동으로 입력하거나, 특정 조건에 따라 셀 색상을 다르게 처리하는 등의 고급 자동화도 가능합니다.
pandas로 엑셀 데이터 다루기
pandas는 엑셀 데이터를 데이터프레임으로 불러와 처리할 수 있는 강력한 도구입니다. 필터링, 정렬, 그룹핑, 연산 등 대규모 데이터 분석에 특히 유리합니다. read_excel()과 to_excel() 함수만 익혀도 상당한 업무 자동화가 가능합니다.
import pandas as pd
# 엑셀 파일 읽기
df = pd.read_excel("sales_report.xlsx")
# 매출 150000 이상인 데이터만 필터링
high_sales = df[df['매출'] >= 150000]
# 결과를 새 파일로 저장
high_sales.to_excel("high_sales.xlsx", index=False)
복잡한 수식 대신 코드 한 줄로 원하는 결과를 도출할 수 있고, 반복 작업도 for문이나 apply() 함수로 유연하게 처리할 수 있습니다.
실무에 바로 쓰는 자동화 팁
- 자동 날짜 입력: datetime 모듈로 날짜 자동 생성 → 보고서 파일명에 날짜 삽입
- 다중 시트 처리: openpyxl로 여러 시트를 순회하며 자동 처리
- 조건부 서식: 특정 값 이상일 때 색상 변경 등 시각화 적용
- 이메일 자동 전송 연동: smtplib과 함께 사용하여 보고서 자동 메일 발송
- 스케줄링: schedule 또는 윈도우 작업 스케줄러로 매일 자동 실행
예를 들어, 매일 아침 9시에 전날 매출 데이터를 엑셀로 정리하고 이메일로 전송하는 작업을 모두 자동화할 수 있습니다.
엑셀 업무는 자동화할 수 있습니다. openpyxl은 구조적 엑셀 작업에, pandas는 대량 데이터 분석에 강력한 도구입니다. 파이썬으로 업무 자동화를 시작하면 반복 작업의 피로를 줄이고, 더 중요한 일에 집중할 수 있게 됩니다. 지금 간단한 엑셀 자동화 스크립트를 직접 실행해보며 업무 효율을 높여보세요!