파이썬 자동화

파이썬 엑셀 자동화 입문 - 반복 업무 끝내는 3가지 코드

테크위키 2026. 3. 20. 22:11
반응형

매주 같은 작업, 파이썬으로 끝낼 수 있습니다

매달 말일, 같은 형식의 보고서를 만들고 있나요? 여러 엑셀 파일에서 데이터를 하나하나 복사해 붙여넣고 있나요?

이런 반복 작업은 파이썬 코드 몇 줄로 자동화할 수 있습니다. 프로그래밍 경험이 없어도 괜찮습니다. 이 글에서 소개하는 3가지 코드는 복사해서 파일명만 바꾸면 바로 쓸 수 있습니다.


왜 파이썬으로 엑셀을 자동화하나요?

엑셀에도 매크로(VBA)가 있습니다. 그런데 왜 파이썬을 쓸까요?

  • 배우기 쉽습니다: 파이썬은 문법이 단순해서 비개발자도 빠르게 익힐 수 있습니다.
  • 응용 범위가 넓습니다: 엑셀뿐 아니라 이메일 발송, 웹 크롤링, 데이터 분석까지 확장됩니다.
  • 회사 내부망에서도 동작합니다: 인터넷 없이도 로컬에서 완전히 실행됩니다.
  • 무료입니다: 별도 라이선스 없이 사용할 수 있습니다.

시작 전 준비물

1. 파이썬 설치

파이썬 공식 사이트(python.org)에서 최신 버전을 다운로드해 설치합니다. 설치 시 "Add Python to PATH" 옵션을 반드시 체크하세요.

설치 확인은 명령 프롬프트(cmd)를 열고 아래 명령을 입력합니다.

python --version

버전 번호가 출력되면 설치 성공입니다.

2. openpyxl 설치

파이썬에서 엑셀 파일을 다루는 라이브러리입니다. 명령 프롬프트에 아래 명령을 입력합니다.

pip install openpyxl

자동화 코드 3가지

코드 1 — 엑셀 파일 읽고 데이터 출력하기

가장 기본입니다. 엑셀 파일을 열어 내용을 읽어오는 코드입니다.

import openpyxl

# 엑셀 파일 열기
wb = openpyxl.load_workbook('데이터.xlsx')
ws = wb.active  # 첫 번째 시트 선택

# 모든 행 읽기
for row in ws.iter_rows(values_only=True):
    print(row)

이렇게 활용하세요: 여러 부서에서 받은 엑셀 파일들을 한꺼번에 읽어 원하는 데이터만 추출할 때 씁니다. 예를 들어 100개 파일에서 특정 열의 합계를 구할 때 이 코드를 반복 실행하면 됩니다.


코드 2 — 데이터를 새 엑셀 파일로 저장하기

읽어온 데이터를 가공해서 새 파일로 저장합니다.

import openpyxl

# 새 엑셀 파일 만들기
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "정리본"

# 헤더 작성
ws.append(["이름", "부서", "매출액"])

# 데이터 입력 (실제로는 다른 파일에서 읽어온 데이터를 넣습니다)
data = [
    ("김철수", "영업팀", 5200000),
    ("이영희", "마케팅팀", 3800000),
    ("박민준", "개발팀", 4100000),
]

for row in data:
    ws.append(row)

# 파일 저장
wb.save("정리본.xlsx")
print("저장 완료!")

이렇게 활용하세요: 여러 시트나 파일에 흩어진 데이터를 하나의 정리된 파일로 합칠 때 활용합니다.


코드 3 — 여러 엑셀 파일을 하나로 합치기 (보고서 자동화 핵심)

매월 각 팀에서 받은 파일을 하나로 합치는 작업에 쓸 수 있습니다.

import openpyxl
import os

# 합칠 파일들이 있는 폴더 경로
folder_path = "C:/업무/월간보고"

# 결과를 저장할 새 파일
result_wb = openpyxl.Workbook()
result_ws = result_wb.active
result_ws.title = "통합보고"

# 헤더 한 번만 쓰기
header_written = False

# 폴더 안의 xlsx 파일 전부 읽기
for filename in os.listdir(folder_path):
    if filename.endswith(".xlsx"):
        file_path = os.path.join(folder_path, filename)
        wb = openpyxl.load_workbook(file_path)
        ws = wb.active

        for i, row in enumerate(ws.iter_rows(values_only=True)):
            # 각 파일의 헤더는 첫 파일 것만 씀
            if i == 0:
                if not header_written:
                    result_ws.append(row)
                    header_written = True
            else:
                result_ws.append(row)

        print(f"{filename} 처리 완료")

result_wb.save("통합보고서.xlsx")
print("전체 합치기 완료!")

이렇게 활용하세요: 팀별로 제출된 월간 보고서, 지점별 실적 파일처럼 같은 형식의 엑셀이 여러 개일 때 클릭 한 번으로 합칩니다.


실전 예제 — 주간 업무 보고서 5분 만에 자동화하기

매주 금요일 작성하는 주간 보고서를 자동화하는 예제입니다.

import openpyxl
from datetime import datetime, timedelta

# 이번 주 날짜 범위 계산
today = datetime.today()
monday = today - timedelta(days=today.weekday())
friday = monday + timedelta(days=4)

# 새 보고서 파일 생성
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "주간보고"

# 제목
ws['A1'] = f"주간 업무 보고 ({monday.strftime('%m/%d')} ~ {friday.strftime('%m/%d')})"

# 헤더
ws.append([])
ws.append(["날짜", "업무 내용", "진행 상태", "비고"])

# 이번 주 날짜 자동 채우기
for i in range(5):
    day = monday + timedelta(days=i)
    ws.append([day.strftime("%Y-%m-%d (%a)"), "", "진행중", ""])

# 컬럼 너비 조정
ws.column_dimensions['A'].width = 22
ws.column_dimensions['B'].width = 40
ws.column_dimensions['C'].width = 12
ws.column_dimensions['D'].width = 20

# 파일명에 날짜 포함해 저장
filename = f"주간보고_{monday.strftime('%Y%m%d')}.xlsx"
wb.save(filename)
print(f"{filename} 생성 완료!")

이 코드를 실행하면 이번 주 날짜가 자동으로 채워진 주간 보고서 템플릿이 생성됩니다. 매주 내용만 채우면 됩니다.


여기서 더 배우려면

openpyxl 하나만 익혀도 엑셀 관련 웬만한 자동화는 해결됩니다. 더 나아가고 싶다면 아래 방향을 추천합니다.

  • pandas: 대용량 데이터 처리와 분석에 특화됩니다. openpyxl과 함께 쓰면 강력합니다.
  • xlwings: 이미 열려 있는 엑셀 파일을 실시간으로 조작할 수 있습니다. 기존 매크로를 대체하기에 좋습니다.
  • schedule 라이브러리: 파이썬 코드를 특정 시간에 자동 실행하게 설정할 수 있습니다. 매일 오전 8시에 보고서를 자동 생성하게 만들 수 있습니다.

정리

코드 용도
코드 1 (읽기) 기존 엑셀 파일에서 데이터 추출
코드 2 (쓰기) 가공된 데이터를 새 파일로 저장
코드 3 (합치기) 여러 파일을 하나의 통합 보고서로

파이썬 엑셀 자동화의 핵심은 거창하게 시작하지 않는 것입니다. 지금 가장 귀찮은 반복 작업 하나를 골라서 그것부터 자동화해 보세요. 한 번 성공하면 다음 자동화는 훨씬 빠르게 만들 수 있습니다.


메타 디스크립션: 파이썬 openpyxl 라이브러리로 엑셀 업무를 자동화하는 방법을 소개합니다. 엑셀 읽기, 데이터 저장, 여러 파일 합치기 3가지 코드를 복사해서 바로 쓸 수 있도록 정리했습니다. 코딩 경험이 없는 직장인도 따라할 수 있습니다.