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âmp | Semnificație |
|---|---|
ColorIndex | Indexul public corespunzător al paletei, de la 1 la 56 |
PaletteSlot | Slotul fizic de culoare indexată BIFF sau OOXML, de la 8 la 63 |
ARGB | Culoarea opacă normalizată stocată în prezent în slot, sau zero dacă nu poate fi rezolvată |
DefinitionCount | Numărul definițiilor indexate care indică slotul |
ReferenceCount | Numărul obiectelor, celulelor sau pozițiilor acoperite de formatare condiționată care referă acele definiții |
Kinds | O mulțime care descrie fiecare categorie observată de consumator |
Locked | True 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);