이번 포스팅에서는 XlsxWriter를 이용하여 Excel(엑셀)에서 숫자형 데이터를 갖는 칼럼에 대하여 데이터 막대(Data Bar)를 삽입하는 방법을 알아보자.
셀 안에 데이터 막대(Data Bar) 그리기 (feat. conditional_format)
데이터 막대는 conditional_format 메서드를 이용하여 그릴 수 있다. conditional_format은 첫 번째 인자로 데이터 막대가 그려질 범위를 설정하고 데이터 막대 설정 옵션을 딕셔너리로 만들어 두 번째 인자로 전달한다.
코드를 통해 사용법을 알아보자. 아래 코드는 엑셀에서 Profit 칼럼과 Units 칼럼 데이터에 막대를 삽입한다.
from xlsxwriter import Workbook ## data 생성 data = [ ['Region', 'SalesRep', 'Profit', 'Units'], ['East', 'Tom', -1, 6380], ['West', 'Fred', -2, 5619], ['North', 'Amy', -10, 4565], ['South', 'Sal', 4, 5323], ['East', 'Fritz', 4, 4394], ['West', 'Sravan', 10, 7195], ['North', 'Xi', -5, 5231], ['South', 'Hector', 20, 2427], ['East', 'Tom', 19, 4213], ['West', 'Fred', -3, 3239], ['North', 'Amy', -5, 6520], ['South', 'Sal', -9, 1310], ['East', 'Fritz', 12, 6274], ['West', 'Sravan', 15, 4894], ['North', 'Xi', 11, 7580], ['South', 'Hector', 10, 9814] ] wb = Workbook('data_bar.xlsx') ws = wb.add_worksheet() ## 데이터 삽입 for i, row in enumerate(data): for j, cell in enumerate(row): ws.write(i, j, cell) ## 필터 생성 ws.conditional_format('D1:D17', {'type':'data_bar', ## 데이터 막대를 그리려면 type을 data_bar로 해야함. 'bar_color':'#FF00FF', ## 막대 색상 }) ws.conditional_format('C1:C17', {'type':'data_bar', 'bar_direction':True, ## 음수 양수 양 방향 'bar_color':'#DADC16', ## 양수 방향 막대 색상 'bar_negative_color':'#FF00FF' ## 음수 방향 막대 색상 }) wb.close()
line 33~35
condtional_format은 첫 번째 인자로 데이터 막대가 그려질 범위를 지정해야 한다. 두 번째 인자는 데이터 막대 설정 옵션을 딕셔너리로 넘겨준다. 이때 'type' 키에 대응하는 값을 반드시 'data_bar'로 해줘야 한다. 그리고 막대 색상은 'bar_color' 키로 설정한다.
line 36~40
만약 음수 양수가 공존하는 칼럼이라면 0을 중심으로 좌우로 뻗어나가는 막대가 좋을 것이다. 이를 지정하기 위해 'bar_direction'을 True로 설정한다. 그리고 'bar_negative_color'를 통하여 음수쪽 막대 색상도 지정할 수 있다.

'프로그래밍 > 엑셀(Excel)' 카테고리의 다른 글
Openpyxl을 이용하여 엑셀(Excel) 셀 안에 이미지(Image) 삽입하기 (2) | 2023.01.14 |
---|---|
[XlsxWriter] 데이터 필터(Auto Filter) 적용하기 (feat. autofilter, filter_column) (0) | 2022.11.15 |
[XlsxWriter] 열(Column) 폭 문자에 맞게 조절하기 (feat. set_column) (0) | 2022.11.11 |
[XlsxWriter] 행 높이와 열 폭 조절하기(feat. set_row, set_column) (0) | 2022.11.11 |
[XlsxWriter] 셀 포맷(Cell Format - 폰트, 숫자 형식, 숨기기, 정렬, 배경색, 테두리) 변경하기 (feat. add_format) (0) | 2022.11.11 |
댓글