HotXLS-dokumentation

Metoden ScanIndexedColorUsage

Returnerar en deterministisk inventering av alla 56 fysiska palettplatser i arbetsboken och de indexfärgdefinitioner och referenser som använder dem

Metoden är tillgänglig i både IXLSWorkbook och TXLSXWorkbook och ändrar inte palett, celler, format, villkorsformatering eller arbetsbokens tillstånd

Syntax

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Resultat

Den returnerade matrisen innehåller alltid 56 poster i stigande ordning efter fysisk plats från 8 till 63

FältBetydelse
ColorIndexMotsvarande publika palettindex från 1 till 56
PaletteSlotDen fysiska BIFF- eller OOXML-platsen för indexfärger från 8 till 63
ARGBDen normaliserade opaka färg som för närvarande är lagrad på platsen, eller noll om den inte kan lösas
DefinitionCountAntalet indexfärgdefinitioner som pekar på platsen
ReferenceCountAntalet objekt, celler eller täckta positioner för villkorsformatering som refererar till dessa definitioner
KindsEn mängd som beskriver varje observerad konsumentkategori
LockedSant när platsen har minst en definition eller referens och därför måste bevaras av en palettoptimeringsplan

Konsumenttäckning

Kinds kan omfatta teckensnitt, fyllningsförgrund, fyllningsbakgrund, toningar, kantlinjer, villkorsformatering, diagram, former, kommentarer, kalkylbladsinställningar och andra indexerade konsumenter

Skanning av Classic XLS omfattar teckensnitt, XF-fyllningar och kantlinjer, kalkylbladsrutnätlinjer, formernas och kommentarernas färger, referenser i rich text- och diagramteckensnitt, äldre villkorsformatering samt BIFF12-databarer eller färgskalor

Skanning av XLSX omfattar materialiserade cellformatsreferenser, formatöverlagringar, namngivna format, teckensnitts-, fyllnings-, tonings- och kantlinjepooler, differentiella format, databarer och färgskalor

Direkta RGB-färger, temafärger, automatiska färger, systemfärger och ogiltiga färgtoken låser inte fysiska palettplatser

Prestanda- och tillståndskontrakt

Skanningen traverserar endast lagrade glesa celler och befintlig formatmetadata; den materialiserar inte packade celler och itererar inte över oanvända kalkylbladskoordinater

Antalen använder mättande 64-bitars aritmetik, så stora intervall kan inte slå runt till ett mindre värde

Upprepade anrop på en oförändrad arbetsbok returnerar identiska poster och lämnar anpassade paletträknare och lagringsstatistik oförändrade

Exempel

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

Se även