환경 설정
Excel 조건부 서식을 Python으로 적용하려면 다음 환경 설정이 필요합니다:
- Python 설치: 공식 웹사이트에서 Python 설치
- 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()