ScanIndexedColorUsage-methode
Geeft een deterministische inventaris van alle 56 fysieke paletslots van de werkmap en van de definities en verwijzingen met geïndexeerde kleuren die ze gebruiken
De methode is beschikbaar op zowel IXLSWorkbook als TXLSXWorkbook en wijzigt het palet, cellen, stijlen, voorwaardelijke opmaak of de werkmapstatus niet
Syntaxis
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
Resultaat
De teruggegeven array bevat altijd 56 invoeren in oplopende fysieke slotvolgorde van 8 tot en met 63
| Veld | Betekenis |
|---|---|
ColorIndex | De bijbehorende openbare paletindex van 1 tot en met 56 |
PaletteSlot | Het fysieke BIFF- of OOXML-slot voor geïndexeerde kleuren van 8 tot en met 63 |
ARGB | De genormaliseerde ondoorzichtige kleur die momenteel in het slot is opgeslagen, of nul als deze niet kan worden opgelost |
DefinitionCount | Het aantal geïndexeerde definities dat naar het slot wijst |
ReferenceCount | Het aantal objecten, cellen of gedekte posities van voorwaardelijke opmaak die naar die definities verwijzen |
Kinds | Een verzameling die elke waargenomen categorie van consumenten beschrijft |
Locked | True wanneer het slot minstens één definitie of verwijzing heeft en dus door een optimalisatieplan voor het palet moet worden behouden |
Gedekte consumenten
Kinds kan lettertypen, vulvoorgronden, vulachtergronden, verlopen, randen, voorwaardelijke opmaak, diagrammen, vormen, opmerkingen, werkbladinstellingen en andere geïndexeerde consumenten omvatten
De klassieke XLS-scan omvat lettertypen, XF-vullingen en -randen, rasterlijnen van het werkblad, vorm- en opmerkingkleuren, verwijzingen naar rich-text- en diagramlettertypen, verouderde voorwaardelijke opmaak en BIFF12-gegevensbalken of kleurschalen
De XLSX-scan omvat gematerialiseerde celstijlverwijzingen, stijloverlays, benoemde stijlen, pools voor lettertype, vulling, verloop en rand, differentiële stijlen, gegevensbalken en kleurschalen
Directe RGB-, thema-, automatische, systeem- en ongeldige kleurtokens vergrendelen geen fysieke paletslots
Prestaties en statuscontract
De scan doorloopt alleen opgeslagen sparse cellen en bestaande stijlmetadata; hij materialiseert geen packed cellen en itereert geen ongebruikte werkbladcoördinaten
De tellingen gebruiken verzadigende 64-bits rekenkunde zodat grote bereiken niet kunnen omslaan naar een kleinere waarde
Herhaalde aanroepen op een ongewijzigde werkmap geven identieke invoeren terug en laten aangepaste paletaantallen en opslagstatistieken ongewijzigd
Voorbeeld
Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
if Usage[I].Locked then
PreservePaletteSlot(Usage[I].PaletteSlot);