Dokumentace HotXLS

Metoda ScanIndexedColorUsage

Vrací deterministický inventář všech 56 fyzických slotů palety sešitu a definic a odkazů na indexované barvy, které je používají

Metoda je k dispozici na IXLSWorkbook i TXLSXWorkbook a nemění paletu, buňky, styly, podmíněné formáty ani stav sešitu

Syntaxe

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Výsledek

Vrácené pole vždy obsahuje 56 položek ve vzestupném pořadí fyzických slotů od 8 do 63

PoleVýznam
ColorIndexOdpovídající veřejný index palety od 1 do 56
PaletteSlotFyzický slot indexovaných barev BIFF nebo OOXML od 8 do 63
ARGBNormalizovaná neprůhledná barva aktuálně uložená ve slotu, nebo nula, pokud ji nelze rozpoznat
DefinitionCountPočet indexovaných definic směřujících na slot
ReferenceCountPočet objektů, buněk nebo pokrytých pozic podmíněného formátu, které na tyto definice odkazují
KindsMnožina popisující každou pozorovanou kategorii konzumentů
LockedTrue, když má slot alespoň jednu definici nebo odkaz, a musí být proto zachován plánem optimalizace palety

Pokrytí konzumentů

Kinds může zahrnovat písma, popředí výplní, pozadí výplní, přechody, ohraničení, podmíněné formáty, grafy, tvary, komentáře, nastavení listů a další indexované konzumenty

Prohledávání classic XLS zahrnuje písma, výplně a ohraničení XF, mřížku listů, barvy tvarů a komentářů, odkazy na písma formátovaného textu a grafů, starší podmíněné formáty a datové lišty či barevné škály BIFF12

Prohledávání XLSX zahrnuje materializované odkazy na styly buněk, překryvy stylů, pojmenované styly, fondy písem, výplní, přechodů a ohraničení, diferenciální styly, datové lišty a barevné škály

Přímé barvy RGB, barvy motivů, automatické, systémové a neplatné tokeny barev fyzické sloty palety nezamknou

Kontrakt výkonu a stavu

Prohledávání prochází pouze uložené řídké buňky a stávající metadata stylů; nematerializuje zkomprimované buňky ani neprochází nepoužívané souřadnice listu

Počty používají saturující 64bitovou aritmetiku, takže velké rozsahy se nemohou zalamovat na menší hodnotu

Opakovaná volání nad nezměněným sešitem vracejí identické položky a ponechávají počty vlastní palety a statistiky úložiště beze změny

Příklad

Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
  if Usage[I].Locked then
    PreservePaletteSlot(Usage[I].PaletteSlot);

Viz také