본문으로 건너뛰기
실습하기

글꼴, 배경 색상, 테두리 서식 지정하기

데이터가 시각적으로 명확하게 표현되려면 적절한 셀 서식을 활용해야 합니다.

이번 수업에서는 파이썬의 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')은 굵은 실선 테두리를 지정합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!