from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule
# 새 워크북과 워크시트 생성
wb = Workbook()
ws = wb.active
# 예제 데이터 추가
data = [
["학생", "점수"],
["Alice", 75],
["Bob", 85],
["Charlie", 95],
["David", 70]
]
for row in data:
ws.append(row)
# 조건부 서식 규칙 설정: 점수가 80 이상일 때 셀 배경을 초록색으로 변경
fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["80"], fill=fill)
ws.conditional_formatting.add("B2:B5", rule)
# 워크북 저장
wb.save("conditional_formatting_example.xlsx")
▪ 결과 값
엑셀 파일 구성 ' 예제 코드 01 실행 후 생성된 파일 정보' 이미지 참조
예제 코드 02 - 수식을 이용한 조건부 서식 적용
▪수익이 음수인 경우 글꼴 빨강색으로 변경
▪ 'FormulaRule'을 사용하여 수식 기반 조건부 서식 설정
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.formatting.rule import FormulaRule
# 새 워크북과 워크시트 생성
wb = Workbook()
ws = wb.active
# 예제 데이터 추가
data = [
["이름", "수익"],
["A", 1000],
["B", 1500],
["C", -500],
["D", 2000],
["E", -100]
]
for row in data:
ws.append(row)
# 조건부 서식 규칙 설정: 수익이 음수인 경우 글꼴 색을 빨간색으로 변경
font = Font(color="FF0000")
rule = FormulaRule(formula=["B2<0"], font=font)
ws.conditional_formatting.add("B2:B6", rule)
# 워크북 저장
wb.save("conditional_formatting_formula_example.xlsx")
▪ 결과 값
엑셀 파일 구성 ' 예제 코드 02 실행 후 생성된 파일 정보' 이미지 참조
NOTE : 조건부 서식 설정시 주의 사항
서식의 순서:
▪ 복수의조건부서식이적용되는경우, 규칙의순서에따라최종서식이결정
범위 설정:
▪잘못된범위를지정하면의도치않은셀에서식이적용될수 있으므로 서식 적용 범위는 정확히 설정
복잡한 수식 사용:
▪계산 속도에 영향을 줄 수 있는 복잡한 수식은 되도록 지양 → 수식의 정확성과 효율성을 고려할 것