Python으로 Excel 조건부 서식 적용하기

환경 설정

Excel 조건부 서식을 Python으로 적용하려면 다음 환경 설정이 필요합니다:

  1. Python 설치: 공식 웹사이트에서 Python 설치
  2. Spire.XLS 라이브러리 설치:
    pip install spire.xls.free

Excel 조건부 서식 유형

유형기능
셀 값숫자 비교를 통한 서식 설정
색상 스케일그라데이션으로 데이터 분포 시각화
데이터 막대셀 내 수치 비율 표시
아이콘 집합심볼을 이용한 데이터 상태 표시
상위/하위특정 순위 데이터 강조
중복/고유 값데이터 중복 또는 유일성 표시
날짜 발생시간 기준 서식 적용

Python 구현 예제

예제 1: 셀 값 기반 서식

from spire.xls import *

excel = Workbook()
excel.LoadFromFile("데이터.xlsx")
sheet = excel.Worksheets[0]

format_rule = sheet.ConditionalFormats.Add()
format_rule.AddRange(sheet.Range["B2:B6"])

condition = format_rule.AddCondition()
condition.FormatType = ConditionalFormatType.CellValue
condition.Operator = ComparisonOperatorType.Greater
condition.FirstFormula = "75"
condition.BackColor = Color.get_Yellow()

excel.SaveToFile("셀값_서식.xlsx", ExcelVersion.Version2016)
excel.Dispose()

예제 2: 색상 스케일

format_rule = sheet.ConditionalFormats.Add()
format_rule.AddRange(sheet.Range["B2:B6"])

condition = format_rule.AddCondition()
condition.FormatType = ConditionalFormatType.ColorScale

예제 3: 데이터 막대

condition.FormatType = ConditionalFormatType.DataBar
condition.DataBar.BarFillType = DataBarFillType.DataBarFillGradient
condition.DataBar.BarColor = Color.get_Blue()

예제 4: 아이콘 집합

condition.FormatType = ConditionalFormatType.IconSet
condition.IconSet.IconSetType = IconSetType.FourArrows

예제 5: 상위/하위 항목

top_rule = sheet.ConditionalFormats.Add()
top_rule.AddRange(sheet.Range["B2:B6"])
top_condition = top_rule.AddTopBottomCondition(TopBottomType.Top, 1)
top_condition.BackColor = Color.get_Red()

예제 6: 중복/고유 값

dup_rule = sheet.ConditionalFormats.Add()
dup_rule.AddRange(sheet.Range["B2:B6"])
dup_condition = dup_rule.AddCondition()
dup_condition.FormatType = ConditionalFormatType.DuplicateValues
dup_condition.BackColor = Color.get_LightYellow()

예제 7: 날짜 기반 서식

date_rule = sheet.ConditionalFormats.Add()
date_rule.AddRange(sheet.Range["C2:C6"])
date_condition = date_rule.AddTimePeriodCondition(TimePeriodType.LastMonth)
date_condition.BackColor = Color.get_Orange()

통합 구현 코드

from spire.xls import *

def apply_conditional_formats(worksheet):
    # 아이콘 집합 추가
    add_icon_set(worksheet, "M1:O2", IconSetType.ThreeArrows)
    add_icon_set(worksheet, "M3:O4", IconSetType.FourArrows)
    
    # 색상 스케일 추가
    add_color_scale(worksheet, "A5:C6")
    
    # 상위/하위 규칙
    add_top_bottom_rule(worksheet, "A17:C20", TopBottomType.Top, 10)
    
    # 데이터 막대
    add_data_bar(worksheet, "E1:G2", Color.get_Blue())
    
    # 날짜 규칙
    add_date_rule(worksheet, "I1:K2", TimePeriodType.Today)

def add_icon_set(sheet, range_ref, icon_type):
    fmt = sheet.ConditionalFormats.Add()
    fmt.AddRange(sheet.Range[range_ref])
    cond = fmt.AddCondition()
    cond.FormatType = ConditionalFormatType.IconSet
    cond.IconSet.IconSetType = icon_type

# 추가 함수 구현 생략 (다양한 규칙 적용 함수)

workbook = Workbook()
workbook.CreateEmptySheets(1)
sheet = workbook.Worksheets[0]
apply_conditional_formats(sheet)
workbook.SaveToFile("다양한_조건부서식.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

태그: python Excel Spire.XLS 조건부서식 데이터시각화

6월 20일 21:38에 게시됨