Dokumentace HotXLS

Vlastní paleta barev

Přehled

Sešity aplikace Excel spravují formátování barev pomocí dvou modelů: starší indexované palety 56 barev v BIFF8 (klasický XLS) a libovolných vazeb RGB nebo pozic motivu v OpenXML (XLSX); HotXLS poskytuje rozhraní API pro přizpůsobení indexů mapování palety a pro hladké přemostění rozdílů mezi těmito formáty

Indexování barev palety

Formát BIFF8 mapuje barvy formátování na položky indexu od 8 do 63; k přepsání výchozích definic barev použijte rozhraní barev sešitu

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

Pokud přiřadíte vlastní hodnotu RGB přímo buňce bez aktualizace indexu palety, HotXLS ji automaticky namapuje na nejbližší barvu v aktivní paletě sešitu

Deterministické rozpoznávání indexovaných barev

IXLSWorkbook a TXLSXWorkbook zpřístupňují odpovídající přetížení ResolveIndexedColor pro interpretaci indexu beze změny sešitu

Volající určí zdrojový indexový prostor jako veřejný ColorIndex, BIFF icvnebo OOXML indexed; výsledek udržuje tokeny palety, automatické, systémové i neplatné oddělené a normalizovanou hodnotu ARGB hlásí jen tehdy, když je k dispozici konkrétní barva

Systémové a automatické tokeny si nikdy implicitně nenačtou aktuální plochu; když potřebujete RGB výstup závislý na prostředí, předejte explicitní resolver systémových barev

Role použití zachovává formátově specifický význam, například BIFF index okraje nula znamená nespecifikováno, nikoli černá

Když je potřeba namapovat hodnotu RGB na nejbližší fyzickou položku palety, použijte NearestIndexedColor ; sdílený matcher s mezipamětí založený na OKLab vrátí veřejné i fyzické indexy beze změny sešitu

Pomocí ScanIndexedColorUsage získáte před plánováním změn palety deterministický inventář 56 slotů; definice a odkazy ze stylů, objektů listu, grafů, komentářů a podmíněných formátů označí dotčené sloty jako uzamčené

Plánování palety bez mutací

Use BuildBiffPalettePlan ukáže, jak přímé RGB a vyřešené barvy motivu zapadnou do 56 fyzických slotů palety BIFF, aniž by se sešit změnil

Plán zachová každý slot označený jako uzamčený, udrží existující přesné barvy na nejnižším odpovídajícím slotu, přiřazuje přesné barvy, dokud stačí kapacita, a frekvenčně vážené deterministické shlukování OKLab použije jen tehdy, když počet unikátních cílů přesáhne volné sloty

Každý cíl hlásí svůj zvolený veřejný a fyzický index, mapovanou hodnotu ARGB, frekvenční váhu, kvadratickou percepční vzdálenost a stav přesné shody; souhrnná pole hlásí přesnou váhu, váženou chybu, maximální chybu, změněné sloty a to, zda bylo nutné kvantování

Generování a hash zdrojové palety umožní ApplyBiffPalettePlan odmítnout zastaralý nebo pošizený plán dřív, než se změní kterýkoliv slot; úspěšná aplikace jednou přestaví matcher v mezipaměti a platný plán bez operace nechá generování beze změny

Klasické sešity dále zpřístupňují BiffPaletteSavePolicy; výchozí hodnota zachovává historickou paletu, zatímco hodnota explicitní optimalizace sestaví a aplikuje aktuální plán pouze pro výstup BIFF8 a při selhání či zrušení ukládání obnoví původní paletu

Bohaté mapování barev RGB

Sešity XLSX obcházejí omezení palety a umožňují přímé přiřazení 24bitových hodnot RGB; podívejte se na rozhraní API pro převod barev níže