파이썬 기초: xlwings란

Young Hwan Kim·2025년 11월 3일

🧩 1️⃣ xlwings란?

“파이썬으로 엑셀을 제어하는 자동화 도구”

  • Excel을 실제로 열어서 조작할 수 있는 라이브러리
  • Python과 Excel을 양방향으로 연결
    → Python의 데이터 분석 결과를 엑셀에 쓰거나, 엑셀 데이터를 Python으로 불러올 수 있음

🧠 2️⃣ xlwings의 주요 특징

기능설명예시
Excel 데이터 읽기셀, 범위, 시트 단위로 읽기ws.range('A1').value
Excel 데이터 쓰기DataFrame, 리스트, 문자열 등 바로 입력 가능ws.range('A1').value = df
엑셀 자동화반복 업무 자동 실행, 수식 계산, 시트 관리보고서 자동 생성
Excel ↔ Python 연결엑셀 VBA에서 Python 함수 호출 가능“Python으로 엑셀 함수 만들기”
시각화pandas, matplotlib 그래프 결과를 엑셀에 출력ws.pictures.add(fig)

🧩 3️⃣ 기본 구조

import xlwings as xw

# ① 엑셀 열기
wb = xw.Book(r'C:\temp\test.xlsx')  # 또는 새 파일: xw.Book()

# ② 시트 선택
ws = wb.sheets['Sheet1']

# ③ 엑셀 데이터 읽기
data = ws.range('A1:B5').value

# ④ 엑셀에 데이터 쓰기
ws.range('D1').value = "결과"
ws.range('D2').value = data

# ⑤ 저장 및 닫기
wb.save()
wb.close()

🧮 4️⃣ pandas와 함께 사용 (가장 강력한 조합)

import pandas as pd
import xlwings as xw

df = pd.DataFrame({
    '이름': ['김영환', '안대환', '서동기'],
    '나이': [25, 30, 28],
    '직업': ['개발자', '디자이너', '기획자']
})

wb = xw.Book()
ws = wb.sheets[0]

# DataFrame → Excel
ws.range('A1').value = df

# Excel → DataFrame
df2 = ws.range('A1').options(pd.DataFrame, expand='table').value

📌 Excel에서 pandas의 표(DataFrame)를 자유롭게 주고받을 수 있습니다.


🧰 5️⃣ 자주 쓰는 기능 요약

작업코드 예시
새 시트 추가wb.sheets.add('새시트')
시트 이름 변경ws.name = '결과'
시트 삭제ws.delete()
행 삽입ws.range('5:5').api.EntireRow.Insert()
열 삽입ws.range('C:C').api.EntireColumn.Insert()
셀 병합ws.range('A1:C1').merge()
셀 색상 변경ws.range('A1').color = (255, 255, 0)
폰트 스타일 변경ws.range('A1').api.Font.Bold = True
그래프 삽입ws.charts.add()
Excel 닫기wb.close()

💡 7️⃣ 실제 활용 예시

예시설명
✅ 업무 보고서 자동 생성엑셀 서식에 데이터를 자동으로 채워서 PDF로 저장
✅ 매일 반복되는 엑셀 작업 자동화복붙, 계산, 정렬 등을 Python으로 자동 처리
✅ 데이터 분석 결과 시각화Python 그래프 → 엑셀에 자동 삽입
✅ PLM/ERP 연동DB나 API에서 불러온 데이터를 엑셀 보고서로 변환

🧾 8️⃣ 간단 실무 예시

import pandas as pd
import xlwings as xw

df = pd.read_excel('bom데이터.xlsx')

# 매출 1000 이상인 고객만 추출
filtered = df[df['수량'] >= 1000]

# 결과를 새로운 시트에 작성
wb = xw.Book('bom데이터.xlsx')
ws = wb.sheets.add('요약')
ws.range('A1').value = filtered

wb.save('bom데이터_결과.xlsx')
wb.close()

✅ 9️⃣ 정리 한 줄 요약

“xlwings = Excel을 Python으로 자동화하는 다리”

  • Excel VBA보다 훨씬 강력한 Python 기능 사용 가능
  • Pandas, Numpy 등과 결합해 데이터 처리 + 보고서 작성까지 완전 자동화 가능

profile
Back-End DEVELOPER ☁️

0개의 댓글