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ält | Betydelse |
|---|---|
ColorIndex | Motsvarande publika palettindex från 1 till 56 |
PaletteSlot | Den fysiska BIFF- eller OOXML-platsen för indexfärger från 8 till 63 |
ARGB | Den normaliserade opaka färg som för närvarande är lagrad på platsen, eller noll om den inte kan lösas |
DefinitionCount | Antalet indexfärgdefinitioner som pekar på platsen |
ReferenceCount | Antalet objekt, celler eller täckta positioner för villkorsformatering som refererar till dessa definitioner |
Kinds | En mängd som beskriver varje observerad konsumentkategori |
Locked | Sant 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);