YouTube 나도코딩님의 동영상을 보면서 공부한 내용입니다.
부족한 내용이나 잘못된 내용은 댓글남겨주시면 감사하겠습니다!
출처 : https://www.youtube.com/channel/UC7iAOLiALt2rtMVAWWl4pnw
1. 차트
# BarChart
from openpyxl import load_workbook
wb = load_workbook("sample_5.xlsx")
ws = wb.active
# 차트 사용하기 위해 import, BarChart사용. Reference 함께 추가
from openpyxl.chart import BarChart, Reference
# B2:C11 까지의 데이터를 차트로 생성
# 어떤 데이터 범위를 쓸지 정의. (현재워크시트 정보, 범위)
bar_value = Reference(ws, min_row=2, max_row=11, min_col=2, max_col=3)
bar_chart = BarChart() # 차트 종류 설정(Bar, Line, Pie,...,)
bar_chart.add_data(bar_value) # 차트 데이터 추가
ws.add_chart(bar_chart, "E1") #차트 넣으 위치 정의
wb.save("sample_chart.xlsx")

# LineChart
# 제목, 계열이름, x,y축 이름, 스타일 설정
# LineChart - 제목포함한 B1:C11까지의 데이터
line_value = Reference(ws, min_row=1, max_row=11, min_col=2, max_col=3)
line_chart = LineChart()
line_chart.add_data(line_value, titles_from_data=True) # titles_from_data=True : 계열부분 제목에서 가져옴
line_chart.title = "성적표" #제목
line_chart.style = 20 # 미리 정의된 스타일을 적용, 사용자가 개별 지정도 가능
line_chart.y_axis.title = "점수" #Y축의 제목
line_chart.x_axis.title = "번호" #X축의 제목
ws.add_chart(line_chart, "E1")

# 스타일 변경
line_chart.style = 10

# 자세한 차트 설명
https://openpyxl.readthedocs.io/en/stable/charts/line.html
2. 셀스타일_1
# 열 너비 지정 - column_dimensions["열번호"].width = 굵기
from openpyxl import load_workbook
wb = load_workbook("sample_5.xlsx")
ws = wb.active
# A 열의 너비를 5로 설정
ws.column_dimensions["A"].width = 5
wb.save("sample_style.xlsx")

# 행 높이 지정 - row_dimensions[행번호].height = 높이
# 행 높이 지정 - 1행의 높이를 50으로 지정
ws.row_dimensions[1].height = 50

# 스타일 적용 - 폰트 변경
- 글자색, 기울기, 두껍게
from openpyxl.styles import Font # 폰트 변경하기 위해서
a1.font = Font(color="FF0000", italic=True, bold=True) # 글자 빨갛게, 이텔릭, 두껍게 적용

- 글자색, 글자체, 취소선
b1.font = Font(color="CC33FF", name="Arial", strike=True) # 글자 분홍색, 폰트체, 취소선 적용

- 글자색, 사이즈, 한줄밑줄
c1.font = Font(color="0000FF", size=20, underline="single") # 글자 파란색, 사이즈, 한줄밑줄 적용

# 테두리 선 적용
from openpyxl.styles import Font, Border, Side # 폰트, 테두리 설정하기 위해서
# 테두리선 적용
thin_border = Border(left=Side(style="thin"), right=Side(style="thin"), top=Side(style="thin"), bottom=Side(style="thin"))
a1.border = thin_border
b1.border = thin_border
c1.border = thin_border


3. 셀스타일_3
# 셀 배경색, 폰트색 적용
from openpyxl.styles import Font, Border, Side, PatternFill
# 폰트, 테두리, 배경 설정하기 위해서
# 셀 배경 적용 - 90점 넘는 셀 초록색
for row in ws.rows: #전체 row가져오기
for cell in row:
if cell.column == 1: #A번호열은 제외
continue
# cell이 정수형 데이터고 90점보다 높으면
if isinstance(cell.value, int) and cell.value > 90:
cell.fill = PatternFill(fgColor="00FF00", fill_type="solid") #배경을 초록색으로 설정
cell.font = Font(color="FF0000") #폰트 색상 변경

# 가운데 정렬
from openpyxl.styles import Font, Border, Side, PatternFill, Alignment
# 폰트, 테두리, 배경, 정렬 설정하기 위해서
# 각 cell에 대해서 정렬
cell.alignment = Alignment(horizontal="center", vertical="center")
# center, left, right, top, bottom

# 틀 고정
# 틀 고정
ws.freeze_panes = "B2" #B2 기준으로 틀 고정


# 11_cell_style.py
from openpyxl.styles import Font, Border, Side, PatternFill, Alignment
# 폰트, 테두리, 배경, 정렬 설정하기 위해서
from openpyxl import load_workbook
wb = load_workbook("sample_5.xlsx")
ws = wb.active
# 번호, 영어, 수학
a1 = ws["A1"] # 번호
b1 = ws["B1"] # 영어
c1 = ws["C1"] # 수학
# 열 너비 지정 - A 열의 너비를 5로 설정
ws.column_dimensions["A"].width = 5
# 행 높이 지정 - 1행의 높이를 50으로 지정
ws.row_dimensions[1].height = 50
# 스타일 적용
# 폰트변경
a1.font = Font(color="FF0000", italic=True, bold=True) # 글자 빨갛게, 이텔릭, 두껍게 적용
b1.font = Font(color="CC33FF", name="Arial", strike=True) # 글자 분홍색, 폰트체, 취소선 적용
c1.font = Font(color="0000FF", size=20, underline="single") # 글자 파란색, 사이즈, 한줄밑줄 적용
# 테두리선 적용
thin_border = Border(left=Side(style="thin"), right=Side(style="thin"), top=Side(style="thin"), bottom=Side(style="thin"))
a1.border = thin_border
b1.border = thin_border
c1.border = thin_border
# 셀 배경 적용 - 90점 넘는 셀 초록색
for row in ws.rows: #전체 row가져오기
for cell in row:
# 각 cell에 대해서 정렬
cell.alignment = Alignment(horizontal="center", vertical="center")
# center, left, right, top, bottom
if cell.column == 1: #A번호열은 제외
continue
# cell이 정수형 데이터고 90점보다 높으면
if isinstance(cell.value, int) and cell.value > 90:
cell.fill = PatternFill(fgColor="00FF00", fill_type="solid") #배경을 초록색으로 설정
cell.font = Font(color="FF0000") #폰트 색상 변경
# 틀 고정
ws.freeze_panes = "B2" #B2 기준으로 틀 고정
wb.save("sample_style.xlsx")'Tools > RPA' 카테고리의 다른 글
| [RPA] 엑셀 - 조건에 맞게 수정후 최종성적내기 (0) | 2021.07.29 |
|---|---|
| [RPA] 엑셀 - 수식, 데이터수식, 병합, 병합해제, 이미지 (0) | 2021.07.28 |
| [RPA] 엑셀 - 삽입, 삭제, 이동 (0) | 2021.07.27 |
| [RPA] 엑셀자동화 - 파일불러와서 데이터 추출, 셀 영역, 찾기 (0) | 2021.07.26 |
| [RPA] 엑셀 자동화 - 시트생성, 시트탭 색상변경, 시트내용 복사, 데이터 입력(반복문), 데이터 가져오기 (0) | 2021.07.26 |