본문 바로가기
프로그래밍/엑셀(Excel)

[XlsxWriter] 셀 안에 데이터 막대(Data Bar) 그리기 (feat. conditional_format)

by 부자 꽁냥이 2022. 11. 15.

이번 포스팅에서는 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'를 통하여 음수쪽 막대 색상도 지정할 수 있다.

 


댓글


맨 위로