HotXLS 문서

ResolveIndexedColor 메서드

인덱스 색 토큰을 분류하고, 통합 문서 팔레트 또는 호출자가 제공한 시스템 색 리졸버가 제공하는 경우 구체적인 ARGB 값을 해석합니다

이 메서드는 IXLSWorkbook과 TXLSXWorkbook 모두에서 사용할 수 있으며 통합 문서 상태를 수정하지 않습니다

구문

function ResolveIndexedColor(
  AIndex: Int64;
  ASpace: TXLSIndexedColorSpace;
  out AResolution: TXLSIndexedColorResolution): Boolean; overload;

function ResolveIndexedColor(
  AIndex: Int64;
  ASpace: TXLSIndexedColorSpace;
  ARole: TXLSIndexedColorRole;
  ASystemResolver: TXLSTryResolveSystemColor;
  out AResolution: TXLSIndexedColorResolution): Boolean; overload;

인덱스 공간

공간해석
xicsPublicColorIndex공용 팔레트 인덱스 1..56은 BIFF 팔레트 슬롯 8..63에 매핑됩니다. 부호 있거나 부호 없는 xlColorIndexAutomatic은 자동으로 분류됩니다
xicsBiffIcvBIFF 인덱스는 선택된 역할에 대해 검증됩니다. 글꼴 및 주석 색은 IcvFont 하위 집합을, 테두리 및 채우기 색은 IcvXF 하위 집합을, 차트 색은 IcvChart 하위 집합을 사용하며, 일반 조회는 전체 Icv 테이블을 사용합니다
xicsOoxmlIndexedOOXML 인덱스 0..63은 인덱스 팔레트를 가리키고, 64와 65는 시스템 전경 및 배경을 식별하며, 더 큰 값은 잘못되었습니다

결과

필드의미
KindxickPalette, xickAutomatic, xickSystem 또는 xickInvalid
RawIndex변경되지 않은 입력 값
PaletteSlot0부터 시작하는 물리적 팔레트 슬롯이며, 토큰이 팔레트 기반이 아니면 -1
SystemColorRole창 텍스트, 창 배경, 차트 텍스트, 차트 배경, 차트 중립, 도구 설명 텍스트 등 의미 체계상의 시스템 역할
ARGBHasResolvedColor가 true일 때 정규화된 구체적인 색
HasResolvedColor팔레트 조회, 고정 서식 색 또는 명시적 콜백이 RGB 값을 산출한 경우에만 true

함수의 반환 값은 HasResolvedColor와 일치합니다. 함수가 false를 반환해도 분류는 AResolution에서 계속 확인할 수 있습니다

시스템 색 계약

짧은 오버로드는 현재 Windows 데스크톱을 절대 읽지 않으므로 자동 및 환경 의존적인 시스템 색은 해석되지 않은 채로 남습니다

긴 오버로드는 TXLSSystemColorRole과 TXLSIndexedColorRole을 모두 ASystemResolver에 전달하므로 호출자가 명시적인 UI, 내보내기 또는 헤드리스 렌더링 정책을 적용할 수 있습니다

콜백 출력은 $AARRGGBB 채널 순서를 사용해야 합니다. 알파 바이트가 0이면 $FF로 정규화되고, 콜백이 false를 반환하면 의미 토큰은 분류된 상태로 해석되지 않고 남습니다

Windows COLORREF는 $00BBGGRR 채널 순서를 사용하므로 콜백이 반환하기 전에 $AARRGGBB로 변환해야 합니다

잘못된 토큰은 콜백을 절대 호출하지 않으며, 고정된 BIFF 차트 중립 토큰은 콜백 없이 불투명한 검정으로 해석됩니다

예제

if Workbook.ResolveIndexedColor(12, xicsPublicColorIndex, Resolution) then
  UseArgb(Resolution.ARGB);

if not Workbook.ResolveIndexedColor($40, xicsBiffIcv, Resolution) then
  Assert(Resolution.Kind = xickSystem);

참고 항목