사용자 지정 색 팔레트
개요
Excel 통합 문서는 두 가지 모델로 색 서식을 관리합니다. BIFF8(클래식 XLS)의 이전 56색 인덱스 팔레트와 OpenXML (XLSX)의 임의 RGB 바인딩 또는 테마 슬롯입니다. HotXLS는 팔레트 매핑 인덱스를 사용자 지정하는 API를 제공하며 이러한 형식 간의 차이를 원활하게 연결합니다
팔레트 색 인덱싱
BIFF8 형식은 서식 색을 8부터 63까지의 인덱스 항목에 매핑합니다. 통합 문서 색 인터페이스를 사용하여 기본 색 정의를 재정의할 수 있습니다
procedure SetColor(const AIndex: Integer; const AColor: TColor);
팔레트 인덱스를 업데이트하지 않고 사용자 지정 RGB 값을 셀에 직접 할당하면 HotXLS가 자동으로 통합 문서의 활성 팔레트에서 가장 가까운 색에 매핑합니다
결정론적 인덱스 색 해석
IXLSWorkbook과 TXLSXWorkbook은 통합 문서를 변경하지 않고 인덱스를 해석하는 동일한 ResolveIndexedColor 오버로드를 노출합니다
호출자는 소스 인덱스 공간을 공개 ColorIndex, BIFF icv, OOXML indexed 중 하나로 지정합니다. 결과는 팔레트, automatic, system, invalid 토큰을 서로 구분해 유지하고, 구체적인 색을 사용할 수 있을 때만 정규화된 ARGB 값을 보고합니다
system 및 automatic 토큰은 현재 데스크톱 설정을 암시적으로 읽지 않습니다. 환경에 따른 RGB 출력이 필요하면 명시적인 system-color resolver를 전달하십시오
사용 역할(usage role)은 형식별 의미를 보존합니다. 예를 들어 BIFF border 인덱스 0은 검은색이 아니라 미지정(unspecified)을 뜻합니다
RGB 값을 가장 가까운 물리적 팔레트 항목에 매핑해야 한다면 NearestIndexedColor를 사용하십시오. 공유 캐시 OKLab 매처가 통합 문서를 변경하지 않고 공개 인덱스와 물리적 인덱스를 반환합니다
팔레트 변경을 계획하기 전에 결정론적인 56슬롯 사용 현황이 필요하면 ScanIndexedColorUsage를 사용하십시오. 스타일, 워크시트 개체, 차트, 메모, 조건부 서식의 정의와 참조가 해당 슬롯을 locked로 표시합니다
비변경 팔레트 계획
BuildBiffPalettePlan을 사용하면 통합 문서를 변경하지 않고도 직접 RGB와 해석된 테마 색이 56개의 물리적 BIFF 팔레트 슬롯에 어떻게 배치될지 미리 볼 수 있습니다
계획은 locked로 보고된 인덱스 슬롯을 모두 보존하고, 기존의 정확한 색은 일치하는 가장 낮은 슬롯에 유지하며, 용량이 남는 동안 정확한 색을 배정하고, 고유 대상 수가 빈 슬롯을 초과할 때만 빈도 가중 결정론적 OKLab 클러스터링을 사용합니다
각 대상은 선택된 공개·물리적 인덱스, 매핑된 ARGB 값, 빈도 가중치, 제곱 지각 거리, 정확 일치 여부를 보고합니다. 요약 필드는 정확 일치 가중치, 가중 오차, 최대 오차, 변경된 슬롯 수, 양자화 필요 여부를 보고합니다
소스 팔레트 세대 값과 해시를 통해 ApplyBiffPalettePlan이 슬롯을 변경하기 전에 오래되었거나 변조된 계획을 거부합니다. 적용에 성공하면 캐시된 매처를 한 번 다시 만들고, 유효한 no-op 계획은 세대 값을 변경하지 않습니다
클래식 통합 문서는 BiffPaletteSavePolicy도 노출합니다. 기본값은 기존 팔레트를 보존하고, 명시적 최적화 값은 BIFF8 출력에 한해 현재 계획을 만들어 적용하며, 저장이 실패하거나 취소되면 원래 팔레트를 복원합니다
풍부한 RGB 색 매핑
XLSX 통합 문서는 팔레트 제한을 우회하고 24비트 RGB 값을 직접 할당할 수 있도록 허용합니다. 아래의 색 변환 API를 확인하십시오
- Workbook Colors 속성 — 인덱스별로 팔레트 색에 액세스합니다
- ResolveIndexedColor 메서드 — 인덱스 색 토큰을 분류하고 선택적으로 해석합니다
- NearestIndexedColor 메서드 — 캐시된 지각 매칭으로 가장 가까운 물리적 팔레트 항목을 찾습니다
- ScanIndexedColorUsage 메서드 — 모든 물리적 팔레트 슬롯의 정의, 참조, 소비자 종류, 보존 잠금을 검사합니다
- BuildBiffPalettePlan 메서드 — 통합 문서 상태를 변경하지 않고 결정론적인 트루컬러 배치와 양자화를 미리 봅니다
- ApplyBiffPalettePlan 메서드 — 현재 56슬롯 팔레트 계획을 검증하고 원자적으로 적용합니다
- BiffPaletteSavePolicy 속성 — 클래식 통합 문서에 대해 보존 모드 또는 명시적 최적화 모드의 BIFF8 팔레트 출력을 선택합니다
- 색 모델 개요 — 클래식 XLS의 색 변환 논리
- Interior SetThemeColor — Office 테마를 사용하여 셀 채우기를 구성합니다