본문 바로가기
Software/Python

[Openpyxl] 4. Cell 서식

by 리미와감자 2024. 1. 28.

4. Cell 서식

 

필요한 라이브러리

 

from openpyxl.styles import Font,Border,Side,PatternFill,Alignment
from openpyxl import load_workbook

 

  • openpyxl.styles에서 Font, Border, Side, PatternFill, Alignment를 import한다.

 

테스트 파일 불러오기

 

wb = load_workbook("test.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) # 폰트 Arial, 취소선
c1.font = Font(color="0000FF", size=20, underline="single") # 크기 20, 한줄 밑줄

 

 

테두리 적용

 

# 테두리 적용
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

 

 

 

 

 

 

틀 고정

 

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

 

 

 

 

  • B2 기준으로 틀고정이 되었다.

 

조건에 맞는 셀 서식 적용

 

# 셀 배경색: 90점 넘는 셀에 대해서 서식 적용(초록색 배경, 빨간색 폰트)
for row in ws.rows:
    for cell in row:
        # 각 cell에 대해서 정렬
        cell.alignment = Alignment(horizontal="center", vertical="center")
        # center, left, right, top, botoom
        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") # 폰트 색상

 

 

 

 

  • 90점이 넘는 셀에 대해서 서식이 적용되었음(초록색 배경, 빨간색 폰트).

 

셀 병합하기(merge_cells(), unmerge_cells())

 

셀 병합하기

 

ws.merge_cells("B2:D2") # B2부터 D2까지 병합
ws["B2"].value = "Merged Cell"

 

 

 

  • merge_cells("병합할 셀의 영역")

 

 

 

셀 병합 해제하기

 

ws.unmerge_cells("B2:D2") # B2부터 D2까지 병합 해제

 

 

 

  • unmerge_cells("병합 해제할 셀의 영역")

'Software > Python' 카테고리의 다른 글

[Openpyxl] 6. 이미지 삽입  (0) 2024.01.28
[Openpyxl] 5. 찾기, 수정, 삽입, 삭제, 이동  (0) 2024.01.28
[Openpyxl] 3. Cell 영역  (0) 2024.01.24
[Openpyxl] 2. Cell 기초  (0) 2024.01.22
[Openpyxl] 1. Workbook, Worksheet  (0) 2024.01.22

댓글