Documentație HotXLS

Metoda ScanIndexedColorUsage

Returnează un inventar determinist al tuturor celor 56 de sloturi fizice ale paletei registrului de lucru și al definițiilor și referințelor de culori indexate care le folosesc

Metoda este disponibilă atât pe IXLSWorkbook, cât și pe TXLSXWorkbook și nu modifică paleta, celulele, stilurile, formatările condiționate sau starea registrului de lucru

Sintaxă

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Rezultat

Vectorul returnat conține întotdeauna 56 de intrări în ordine crescătoare a sloturilor fizice, de la 8 la 63

CâmpSemnificație
ColorIndexIndexul public corespunzător al paletei, de la 1 la 56
PaletteSlotSlotul fizic de culoare indexată BIFF sau OOXML, de la 8 la 63
ARGBCuloarea opacă normalizată stocată în prezent în slot, sau zero dacă nu poate fi rezolvată
DefinitionCountNumărul definițiilor indexate care indică slotul
ReferenceCountNumărul obiectelor, celulelor sau pozițiilor acoperite de formatare condiționată care referă acele definiții
KindsO mulțime care descrie fiecare categorie observată de consumator
LockedTrue când slotul are cel puțin o definiție sau o referință și, prin urmare, trebuie păstrat de un plan de optimizare a paletei

Acoperirea consumatorilor

Kinds poate include fonturi, umpleri de prim-plan, fundaluri de umplere, gradiente, borduri, formatare condiționată, grafice, forme, comentarii, setări ale foilor de lucru și alți consumatori indexați

Scanarea Classic XLS include fonturi, umpleri și borduri XF, grilă foilor de lucru, culorile formelor și comentariilor, referințele de fonturi din text îmbogățit și grafice, formatările condiționate de tip vechi și barele de date sau scările de culori BIFF12

Scanarea XLSX include referințele de stil de celulă materializate, suprapunerile de stil, stilurile denumite, rezervele de fonturi, umpleri, gradiente și borduri, stilurile diferențiale, barele de date și scările de culori

Token-urile de culoare RGB directă, de temă, automată, de sistem și invalide nu blochează sloturi fizice ale paletei

Performanță și contract de stare

Scanarea traversează doar celulele rare stocate și metadatele de stil existente; nu materializează celule împachetate și nu iterează coordonatele nefolosite ale foii de lucru

Numărătorile folosesc aritmetică saturantă pe 64 de biți, astfel încât intervalele mari nu pot da înapoi la o valoare mai mică

Apelurile repetate pe un registru de lucru neschimbat returnează intrări identice și lasă neschimbate numărul de culori personalizate și statisticile de stocare

Exemplu

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

Consultați și