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
| Feld | Bedeutung |
|---|---|
ColorIndex | Der entsprechende öffentliche Palettenindex von 1 bis 56 |
PaletteSlot | Der physische BIFF- oder OOXML-Slot für indizierte Farben von 8 bis 63 |
ARGB | Die normalisierte opake Farbe, die derzeit am Slot gespeichert ist, oder null, wenn sie nicht aufgelöst werden kann |
DefinitionCount | Die Anzahl der indizierten Definitionen, die auf den Slot verweisen |
ReferenceCount | Die Anzahl der Objekte, Zellen oder abgedeckten Positionen bedingter Formate, die diese Definitionen referenzieren |
Kinds | Eine Menge, die jede beobachtete Consumer-Kategorie beschreibt |
Locked | True, 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);