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 |
댓글