Data Analysis

파이썬 openpyxl (차트)

알로그 2020. 11. 11. 14:38
반응형

파이썬 openpyxl

파이썬 openpyxl을 이용하여 엑셀 차트를 그려보자.

 

기본적인 사용방법은 이전 포스팅 자료를 참고하면 좋을 것 같다.

2020/11/11 - [Data Analysis] - 파이썬 openpyxl 모듈 사용

 

파이썬 openpyxl 모듈 사용

파이썬으로 엑셀 자동화 작업하는 경우가 많은데, 잊지 않기 위해 기록해봄 파이썬 엑셀 관련 패키지들은 다양하게 있지만 최근에 openpyxl로 많이 쓰는 추세인듯.. 우선 파일을 작성하는 방법은

hungc.tistory.com

 

append 함수를 이용하여 리스트 형태의 값을 한 번에 입력하는 것을 보여주고 있으며, 이를 바 차트로 그린 소스코드이다. 자세한 내용은 아래 소스코드와 주석을 참조하자.

 

소스코드

import openpyxl
from openpyxl.chart import LineChart, BarChart, Reference

# 엑셀 작성 함수
def excelWrite():
    wb = openpyxl.Workbook()
    sh = wb.active

    # append 함수로 각 셀마다 데이터 입력
    sh.append(['이름', '국어', '영어'])
    sh.append(['김철수', 40, 60])
    sh.append(['김영희', 50, 50])
    sh.append(['임꺽정', 60, 80])
    
    wb.save('chart.xlsx')

excelWrite()

# 위에서 작성한 파일 load 
wb = openpyxl.load_workbook('chart.xlsx')
sh = wb['Sheet']

# 차트 초기화
chart = BarChart()
# chart = LineChart()

# 데이터 영역 position 형태로 추가: (1,2) -> (4,3) 까지
chartData = Reference(sh, min_col=2, max_col=3,
                        min_row=1, max_row=4)

# 카테고리(이름)에 해당하는 영역 position 형태로 추가
category = Reference(sh, min_col=1, min_row=2, max_row=4)

# 차트에 데이터 바인딩, title_from_data는 범례 값
chart.add_data(chartData, titles_from_data=True)

# 차트에 카테고리 바인딩
chart.set_categories(category)

# F1 셀에 차트 추가
sh.add_chart(chart, 'F1')
wb.save('chart.xlsx')

 

결과

 

 

 

레퍼런스 참조: openpyxl.readthedocs.io/en/stable/charts/introduction.html#chart-types

 

Charts — openpyxl 3.0.5 documentation

© Copyright 2010 - 2020, See AUTHORS Revision b21e9536ad9f.

openpyxl.readthedocs.io

 

반응형