HotXLS-documentatie

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

VeldBetekenis
ColorIndexDe bijbehorende openbare paletindex van 1 tot en met 56
PaletteSlotHet fysieke BIFF- of OOXML-slot voor geïndexeerde kleuren van 8 tot en met 63
ARGBDe genormaliseerde ondoorzichtige kleur die momenteel in het slot is opgeslagen, of nul als deze niet kan worden opgelost
DefinitionCountHet aantal geïndexeerde definities dat naar het slot wijst
ReferenceCountHet aantal objecten, cellen of gedekte posities van voorwaardelijke opmaak die naar die definities verwijzen
KindsEen verzameling die elke waargenomen categorie van consumenten beschrijft
LockedTrue 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);

Zie ook