반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

오늘은 파이썬으로 엑셀(Excel)을 다룰 때 가장 많이 사용하는 openpyxl 패키지에 대해 알아보겠습니다.

엑셀은 회사에서 업무할 때 정말 많이 사용하는 오피스 프로그램이니 알아두시면 많은 도움이 되실거라 생각합니다!

 

지난 시간에 배운 내용과 관련된 코드는 설명없이 넘어 갈 예정이니, 아래 내용을 모르신다면 읽고 오시는 것을 추천드립니다.

 

2021.05.28 - [파이썬 패키지/사무자동화] - [Python Excel] 파이썬으로 엑셀 다루기 1편_openpyxl 패키지 소개 및 시트 생성/변경

2021.05.29 - [파이썬 패키지/사무자동화] - [Python Excel] 파이썬으로 엑셀 다루기 2편_엑셀 파일 불러오기, 셀 데이터 입력/삭제 및 빈칸 추가

2021.05.30 - [파이썬 패키지/사무자동화] - [Python Excel] 파이썬으로 엑셀 다루기 3편_셀 데이터 가져오기

 


 

이번 시간에는 셀에 여러가지 스타일을 적용하는 방법을 배워보겠습니다.

 

셀 스타일 설정을 위해서는 openpyxl.styles 모듈을 불러와줘야합니다.

 

from openpyxl import Workbook
from openpyxl.styles import Font, Border, Side, Alignment, PatternFill, Protection

 

설정 요소는 크게 5종류로 나뉩니다. Font(글꼴), Border(테두리), Alignment(맞춤), PatternFill(채우기), Protection(보호)

 

하나씩 차례대로 알아보겠습니다.

 

 

1. Font (글꼴)

 

우리가 엑셀을 사용할 때 가장 흔하게 설정하는 글꼴입니다. 글자체, 사이즈, 글자 스타일, 밑줄, 색상 등을 설정할 수 있습니다.

세부 설정 요소 설정 값 기본 값
name '폰트 이름(영어로)'       
ex) 'Arial', 'GungSeo'
'Calibri'
size 1~409 11
bold  /  italic  /  strike
(굵게) (기울임) (취소선)
True/False Fasle
underline
  (밑줄)
'none'/'single'/'double'
 (없음)   (한 줄)   (두 줄)
'none'
color '000000~FFFFFF' or '00000000~FFFFFFFF' 'FF000000'

 

혹시 아래에서 마음에 드는 컬러가 있으시면 참고해서 사용하세요.

출처. openpyxl 공식 문서

<사용 예>

a1 = ws.cell(row=1, column=1, value="파이썬은")
b1 = ws.cell(row=1, column=2, value="역시")
c1 = ws.cell(row=1, column=3, value="코딩유치원!")

a1.font = Font(color="FF0000", italic=True, bold=True) # 글자 색은 빨갛게, 이탤릭, 굴게 적용
b1.font = Font(color="0000FF", name="Arial", strike=True) # 폰트를 Arial로 설정, 취소선 적용
c1.font = Font(color="00FF00", size=15, underline="single") # 글자 크기를 15로 설정, 밑줄 적용

 

2. Border (테두리)

 

테두리의 위치(상하좌우)와 선 스타일을 설정할 수 있습니다. 자주 사용하는 것만 굵은 글씨로 표시해두었으니 참고해주세요.

세부 설정 요소 설정 값 기본 값
left / right / top / bottom

    vertical      /    horizontal
(좌우 모서리)      (상하 모서리)
     outline
(네 모서리 모두)
'dashDot' / 'dashDotDot' / 'dashed' / 'dotted' / 
'double' / 'hair' / 'medium' / 'mediumDashDot' / 'mediumDashDotDot' / 'mediumDashed' / 'slantDashDot' / 'thick' / 'thin'
None
diagonal (대각선) 위와 동일 None
diagonal_direction
(대각선 방향)
0 / 1 0

 

<사용 예>

a1 = ws.cell(row=1, column=1, value="코딩유치원")

thin_border = Border(left=Side(style="thin"), right=Side(style="thin"), 
		top=Side(style="thin"), bottom=Side(style="thin"))
        
a1.border = thin_border

 

 

3. Alignment (맞춤)

 

아마 맞춤 기능은 가운데 정렬할 때 가장 많이 사용하지 않나 싶습니다. 그 외에도 많은 기능이 있지만 아직 필요성을 못느껴서 추후 필요시 공부하여 업데이트 예정입니다.

세부 설정 요소 설정 값 기본 값
horizontal (수평 정렬) "general" / "left""center""right" /
"fill" / "justify" / "centerContinuous" / "distributed"
None
vertical (수직 정렬) "top""center""bottom" / "justify" / "distributed"
None
indent, relativeIndent 0 이상의 정수 0
<그 외 요소들>

1) 텍스트 회전
textRotation / text_rotation

2) 자동 줄바꿈
wrapText / wrap_text

3) 줄여 맞추기
shrinkToFit / shrink_to_fit

4) 기타 등등
readingOrder / justifyLastLine /
mergeCell
추후 필요시 공부하여 업데이트 예정 1) 0 / None

2) None / None

3) None / None

4) 0 / None / None

 

<사용 예>

cell.alignment = Alignment(horizontal="center", vertical="center")

 

 

4. PatternFill (채우기)

채우기는 표의 제목이나 특별히 강조할 곳을 표시할 때 사용합니다. 아마 Solid 패턴으로 배경색만 설정해서 사용하지 않을까 생각됩니다.

세부 설정 요소 설정 값 기본 값
patternType PatternFill( )  /   GradientFill( ) 사용 예 참고
fill_type 'solid' / 'darkDown' / 'darkGray'/ 'darkGrid' /
'darkHorizontal' / 'darkTrellis' / 'darkUp' /
'darkVertical' / 'gray0625' / 'gray125' /
'lightDown' / 'lightGray' / 'lightGrid' /
'lightHorizontal' / 'lightTrellis' / 'lightUp' / 
'lightVertical' / 'mediumGray'
None
fgColor (배경색) '000000~FFFFFF' or '00000000~FFFFFFFF' 000000(검정색)
bgColor (패턴색) '000000~FFFFFF' or '00000000~FFFFFFFF' 000000(검정색)
start_color / end_color
(그라데이션)
'000000~FFFFFF' or '00000000~FFFFFFFF' None

 

<사용 예>

# 배경을 빨간색으로 설정
cell.fill = PatternFill(fgColor="FF0000", fill_type="solid")

# 그라데이션 배경 넣는 법 (start_color, end_color)
cell.fill = GradientFill(stop=("000000", "FFFFFF"))

 

 

5. Protection (보호)

 

통합 문서나 시트를 수정하지 못하도록 보호하는 설정으로 보입니다만 제가 엑셀을 잘 몰라서 이런 것이 있다는 것 정도만 언급하고 넘어가도록 하겠습니다.

protection = Protection(locked=True, hidden=False)

 


오늘은 openpyxl을 이용하여 엑셀 서식(style)을 변경하는 법에 대해 알아보았습니다.

 

다음 시간에는 수식을 사용하는 법에 대해 공부해보겠습니다.

반응형

+ Recent posts