Документация на HotXLS

Персонализирана цветова палитра

Общ преглед

Работните книги на Excel управляват форматирането на цветовете чрез два модела: по-старата индексирана палитра от 56 цвята в BIFF8 (класически XLS) и произволни RGB връзки или слотове на тема в OpenXML (XLSX); HotXLS предоставя API за персонализиране на индексите за съпоставяне на палитрата и за плавно преодоляване на разликите между тези формати

Индексиране на цветовете на палитрата

Форматът BIFF8 съпоставя цветовете на форматиране с индексни записи от 8 до 63; използвайте интерфейса за цветове на работната книга, за да презапишете цветовите дефиниции по подразбиране

procedure SetColor(const AIndex: Integer; const AColor: TColor);

Ако присвоите персонализирана RGB стойност директно на клетка без актуализиране на индекса на палитрата, HotXLS автоматично ще я съпостави с най-близкия цвят в активната палитра на работната книга

Детерминирано разчитане на индексирани цветове

IXLSWorkbook и TXLSXWorkbook предоставят съответстващи ResolveIndexedColor overloads за тълкуване на индекс, без да се променя работната книга

Извикващият посочва изходното индексно пространство като публичен ColorIndex, BIFF icv или OOXML indexed; резултатът поддържа токените за палитра, автоматични, системни и невалидни отделени един от друг и докладва нормализираната ARGB стойност само когато е наличен конкретен цвят

Системните и автоматичните токени никога не четат изрично текущия desktop; подавайте изричен system-color resolver, когато се изисква RGB изход, специфичен за средата

Ролята на употреба запазва специфичното за формата значение, например BIFF border индекс нула, който означава "непосочен", а не черен

Използвайте NearestIndexedColor, когато RGB стойност трябва да бъде съпоставена с най-близкия физически запис в палитрата; споделеният кеширан OKLab съпоставящ връща публични и физически индекси, без да променя работната книга

Използвайте ScanIndexedColorUsage, за да получите детерминирана инвентаризация на 56-те слота, преди да планирате промени в палитрата; дефинициите и препратките от стилове, обекти на листа, диаграми, коментари и условни формати маркират засегнатите слотове като заключени

Планиране на палитрата без промени

Използвайте BuildBiffPalettePlan, за да визуализирате как директни RGB и разрешени тематични цветове могат да се поберат в 56-те физически BIFF слота на палитрата, без да променяте работната книга

Планът запазва всеки индексиран слот, докладван като заключен, задържа съществуващите точни цветове в слота с най-нисък съвпадащ индекс, присвоява точни цветове, докато има капацитет, и прибягва до честотно претеглено детерминирано OKLab клъстериране само когато уникалните цели надвишават свободните слотове

Всяка цел докладва избрания си публичен и физически индекс, съпоставената ARGB стойност, честотната тежест, квадратичното перцептивно разстояние и състоянието на точно съвпадение; обобщаващите полета докладват точната тежест, претеглената грешка, максималната грешка, променените слотове и дали е било необходимо квантизиране

Поколението и хешът на изходната палитра позволяват на ApplyBiffPalettePlan да отхвърли остарял или подправен план, преди някой слот да е променен; успешно прилагане преизгражда кеширания matcher веднъж, а валиден план без действие оставя поколението непроменено

Класическите работни книги също предоставят BiffPaletteSavePolicy; стойността по подразбиране запазва историческата палитра, докато изричната стойност за оптимизация изгражда и прилага текущ план само за BIFF8 изход и възстановява оригиналната палитра, ако записът пропадне или бъде прекъснат

Богато RGB съпоставяне на цветове

Работните книги XLSX заобикалят ограничения на палитрата и позволяват директно присвояване на 24-битови RGB стойности; разгледайте API за преобразуване на цветове по-долу