HotXLS-Dokumentation

ScanIndexedColorUsage-Methode

Liefert ein deterministisches Inventar aller 56 physischen Palettenslots der Arbeitsmappe sowie der indizierten Farbdefinitionen und -referenzen, die sie verwenden

Die Methode ist sowohl für IXLSWorkbook als auch für TXLSXWorkbook verfügbar und ändert weder Palette, Zellen, Stile, bedingte Formate noch den Arbeitsmappenzustand

Syntax

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Ergebnis

Das zurückgegebene Array enthält immer 56 Einträge in aufsteigender physischer Slotreihenfolge von 8 bis 63

FeldBedeutung
ColorIndexDer entsprechende öffentliche Palettenindex von 1 bis 56
PaletteSlotDer physische BIFF- oder OOXML-Slot für indizierte Farben von 8 bis 63
ARGBDie normalisierte opake Farbe, die derzeit am Slot gespeichert ist, oder null, wenn sie nicht aufgelöst werden kann
DefinitionCountDie Anzahl der indizierten Definitionen, die auf den Slot verweisen
ReferenceCountDie Anzahl der Objekte, Zellen oder abgedeckten Positionen bedingter Formate, die diese Definitionen referenzieren
KindsEine Menge, die jede beobachtete Consumer-Kategorie beschreibt
LockedTrue, wenn der Slot mindestens eine Definition oder Referenz besitzt und daher von einem Palettenoptimierungsplan bewahrt werden muss

Abgedeckte Consumer

Kinds kann Schriftarten, Füllvordergründe, Füllhintergründe, Verläufe, Rahmen, bedingte Formate, Diagramme, Formen, Kommentare, Arbeitsblatteinstellungen und weitere indizierte Consumer umfassen

Der Classic-XLS-Scan umfasst Schriftarten, XF-Füllungen und -Rahmen, Arbeitsblatt-Gitternetzlinien, Form- und Kommentarfarben, Rich-Text- und Diagrammschriftreferenzen, Legacy-bedingte Formate sowie BIFF12-Datenbalken oder Farbskalen

Der XLSX-Scan umfasst materialisierte Zellstilreferenzen, Stilüberlagerungen, benannte Stile, Schrift-, Füll-, Verlaufs- und Rahmen-Pools, differenzielle Stile, Datenbalken und Farbskalen

Direkte RGB-, Design-, automatische, System- und ungültige Farbtokens sperren keine physischen Palettenslots

Leistung und Zustandskontrakt

Der Scan durchläuft nur gespeicherte Sparse-Zellen und vorhandene Stilmetadaten; er materialisiert keine gepackten Zellen und iteriert keine ungenutzten Arbeitsblattkoordinaten

Die Zähler verwenden saturierende 64-Bit-Arithmetik, sodass große Bereiche nicht auf einen kleineren Wert überlaufen können

Wiederholte Aufrufe über eine unveränderte Arbeitsmappe liefern identische Einträge und lassen benutzerdefinierte Palettenanzahlen und Speicherstatistiken unverändert

Beispiel

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

Siehe auch