Dokumentacja HotXLS

Metoda ScanIndexedColorUsage

Zwraca deterministyczny wykaz wszystkich 56 fizycznych slotów palety skoroszytu oraz definicji i odwołań kolorów indeksowanych, które z nich korzystają

Metoda jest dostępna zarówno w IXLSWorkbook, jak i w TXLSXWorkbook i nie modyfikuje palety, komórek, stylów, formatów warunkowych ani stanu skoroszytu

Składnia

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Wynik

Zwracana tablica zawsze zawiera 56 wpisów w rosnącej kolejności slotów fizycznych od 8 do 63

PoleZnaczenie
ColorIndexOdpowiadający publiczny indeks palety od 1 do 56
PaletteSlotFizyczny slot kolorów indeksowanych BIFF lub OOXML od 8 do 63
ARGBZnormalizowany nieprzezroczysty kolor obecnie zapisany w slocie albo zero, jeśli nie można go rozwiązać
DefinitionCountLiczba definicji indeksowanych wskazujących na slot
ReferenceCountLiczba obiektów, komórek lub objętych pozycji formatów warunkowych odwołujących się do tych definicji
KindsZbiór opisujący każdą zaobserwowaną kategorię konsumentów
LockedTrue, gdy slot ma co najmniej jedną definicję lub odwołanie i dlatego musi być zachowany przez plan optymalizacji palety

Zakres konsumentów

Kinds może obejmować czcionki, pierwsze i tylne plany wypełnień, gradienty, obramowania, formaty warunkowe, wykresy, kształty, komentarze, ustawienia arkusza oraz innych indeksowanych konsumentów

Skanowanie klasycznego XLS obejmuje czcionki, wypełnienia i obramowania XF, linie siatki arkusza, kolory kształtów i komentarzy, odwołania czcionek tekstu sformatowanego i wykresów, starsze formaty warunkowe oraz paski danych lub skale kolorów BIFF12

Skanowanie XLSX obejmuje zmaterializowane odwołania do stylów komórek, nakładki stylów, style nazwane, pule czcionek, wypełnień, gradientów i obramowań, style różnicowe, paski danych i skale kolorów

Bezpośrednie kolory RGB, kolory motywu, tokeny automatyczne, systemowe i nieprawidłowe nie blokują fizycznych slotów palety

Wydajność i kontrakt stanu

Skanowanie przechodzi wyłącznie przez zapisane rozrzedzone komórki i istniejące metadane stylów; nie materializuje spakowanych komórek ani nie iteruje po nieużywanych współrzędnych arkusza

Liczniki używają 64-bitowej arytmetyki saturacyjnej, dzięki czemu duże zakresy nie mogą się zawinąć do mniejszej wartości

Powtarzane wywołania na niezmienionym skoroszycie zwracają identyczne wpisy i pozostawiają liczniki palety niestandardowej oraz statystyki magazynu bez zmian

Przykład

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

Zobacz także