Metóda ScanIndexedColorUsage
Vracia deterministický inventár všetkých 56 fyzických slotov palety zošita a definícií a odkazov na indexované farby, ktoré ich používajú
Metóda je k dispozícii na IXLSWorkbook aj TXLSXWorkbook a nemení paletu, bunky, štýly, podmienené formáty ani stav zošita
Syntax
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
Výsledok
Vrátené pole vždy obsahuje 56 položiek vo vzostupnom poradí fyzických slotov od 8 do 63
| Pole | Význam |
|---|---|
ColorIndex | Zodpovedajúci verejný index palety od 1 do 56 |
PaletteSlot | Fyzický slot indexovaných farieb BIFF alebo OOXML od 8 do 63 |
ARGB | Normalizovaná nepriehľadná farba aktuálne uložená v slote, alebo nula, ak sa nedá rozpoznať |
DefinitionCount | Počet indexovaných definícií smerujúcich na slot |
ReferenceCount | Počet objektov, buniek alebo pokrytých pozícií podmieneného formátu, ktoré na tieto definície odkazujú |
Kinds | Množina popisujúca každú pozorovanú kategóriu konzumentov |
Locked | True, keď má slot aspoň jednu definíciu alebo odkaz, a musí byť preto zachovaný plánom optimalizácie palety |
Pokrytie konzumentov
Kinds môže zahŕňať písma, popredia výplní, pozadia výplní, gradienty, ohraničenia, podmienené formáty, grafy, tvary, komentáre, nastavenia hárkov a ďalších indexovaných konzumentov
Prehľadávanie classic XLS zahŕňa písma, výplne a ohraničenia XF, mriežku hárkov, farby tvarov a komentárov, odkazy na písma formátovaného textu a grafov, staršie podmienené formáty a dátové lišty či farebné škály BIFF12
Prehľadávanie XLSX zahŕňa materializované odkazy na štýly buniek, prekryvy štýlov, pomenované štýly, fondy písiem, výplní, gradientov a ohraničení, diferenčné štýly, dátové lišty a farebné škály
Priame farby RGB, farby motívov, automatické, systémové a neplatné tokeny farieb fyzické sloty palety nezamknú
Kontrakt výkonu a stavu
Prehľadávanie prechádza len uložené riedke bunky a existujúce metadáta štýlov; nematerializuje zkomprimované bunky ani neprechádza nepoužívané súradnice hárku
Počty používajú saturujúcu 64bitovú aritmetiku, takže veľké rozsahy sa nemôžu zalamovať na menšiu hodnotu
Opakované volania nad nezmeneným zošitom vracajú identické položky a ponechávajú počty vlastnej palety a štatistiky úložiska bez zmeny
Príklad
Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
if Usage[I].Locked then
PreservePaletteSlot(Usage[I].PaletteSlot);