글꼴, 배경 색상, 테두리 서식 지정하기
데이터가 시각적으로 명확하게 표현되려면 적절한 셀 서식을 활용해야 합니다.
이번 수업에서는 파이썬의 openpyxl
라이브러리로 셀의 서식을 지정하는 방법을 알아보겠습니다.
셀의 글꼴 서식 지정하기
파이썬 코드로 셀의 글꼴을 굵게 하거나, 글자 색상을 변경하려면 어떻게 해야 할까요?
openpyxl에서는 Font
클래스로 이러한 서식을 지정할 수 있습니다.
from openpyxl import Workbook from openpyxl.styles import Font # 새로운 워크북 생성 wb = Workbook() # 활성 시트 선택 ws = wb.active # 셀에 데이터 입력 ws['A1'] = "Hello" # 글꼴 서식 지정 (굵게, 이탤릭, 파란색) ws['A1'].font = Font(bold=True, italic=True, color="0000FF") # 파일 저장 wb.save("output_file.xlsx")
위 코드는 Font 클래스를 사용해 셀 A1의 글꼴을 굵게(bold=True
), 이탤릭체(italic=True
), 빨간색(color="FF0000"
)으로 설정했습니다.
셀의 배경색 지정하기
셀의 배경 색상을 변경하면 데이터가 더욱 두드러져 보일 수 있습니다.
특히 조건부 서식을 적용할 때 배경 색상을 활용하면 데이터를 더욱 명확하게 표현할 수 있습니다.
openpyxl에서는 PatternFill
클래스를 사용해 셀의 배경색을 지정할 수 있습니다.
from openpyxl import Workbook from openpyxl.styles import PatternFill # 새로운 워크북 생성 wb = Workbook() # 활성 시트 선택 ws = wb.active # 3열(C)에 1부터 10까지의 값 입력 for i in range(1, 11): ws.cell(row=i, column=3, value=i) # 데이터가 5보다 큰 셀의 배경 색상을 노란색으로 지정 for i in range(1, 11): if ws[f'C{i}'].value > 5: # 초록색 배경 색상 지정 ws[f'C{i}'].fill = PatternFill(bgColor="00FF00", fill_type="solid") # 파일 저장 wb.save("output_file.xlsx")
PatternFill의 bgColor
는 배경색을 지정하고, fill_type
은 셀의 채우기 유형(예: solid, darkDown, lightUp 등)을 지정합니다.
셀 테두리 지정하기
셀에 테두리를 추가하면 강조할 데이터를 더욱 명확하게 표현할 수 있습니다.
이러한 경우에는 Border
, Side
클래스를 사용해 셀의 테두리를 지정할 수 있습니다.
'Border' 클래스는 셀의 테두리를 지정하고, 'Side' 클래스는 테두리의 스타일을 지정합니다.
from openpyxl import Workbook from openpyxl.styles import Border, Side # 새로운 워크북 생성 wb = Workbook() # 활성 시트 선택 ws = wb.active # 셀에 데이터 입력 ws['E2'] = "Border" # 테두리 지정 (굵은 실선) border = Border(left=Side(style='thick'), right=Side(style='thick'), top=Side(style='thick'), bottom=Side(style='thick')) ws['E2'].border = border # 파일 저장 wb.save("output_file.xlsx")
위 코드에서는 Border 클래스로 셀 E2의 테두리를 지정했습니다.
Border 클래스의 left
, right
, top
, bottom
속성은 각각 셀의 왼쪽, 오른쪽, 위쪽, 아래쪽 테두리를 지정합니다.
Side(style='thick')
은 굵은 실선 테두리를 지정합니다.
셀의 글꼴을 굵게, 이탤릭체, 빨간색으로 설정하려면 어떤 클래스를 사용해야 할까요?
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과
문서가 비어 있습니다.
코드를 실행해보세요.