Método ScanIndexedColorUsage
Devolve um inventário determinístico de todas as 56 ranhuras físicas da paleta do livro de trabalho e das definições e referências de cores indexadas que as utilizam
O método está disponível tanto em IXLSWorkbook como em TXLSXWorkbook e não modifica a paleta, as células, os estilos, a formatação condicional nem o estado do livro de trabalho
Sintaxe
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
Resultado
A matriz devolvida contém sempre 56 entradas por ordem crescente de ranhura física, de 8 a 63
| Campo | Significado |
|---|---|
ColorIndex | O índice público da paleta correspondente, de 1 a 56 |
PaletteSlot | A ranhura física de cores indexadas BIFF ou OOXML de 8 a 63 |
ARGB | A cor opaca normalizada atualmente armazenada na ranhura, ou zero se não puder ser resolvida |
DefinitionCount | O número de definições indexadas que apontam para a ranhura |
ReferenceCount | O número de objetos, células ou posições de formatação condicional abrangidas que referenciam essas definições |
Kinds | Um conjunto que descreve cada categoria de consumidor observada |
Locked | True quando a ranhura tem pelo menos uma definição ou referência e, por isso, tem de ser preservada por um plano de otimização da paleta |
Cobertura de consumidores
Kinds pode incluir tipos de letra, primeiros planos de preenchimento, fundos de preenchimento, gradientes, limites, formatações condicionais, gráficos, formas, comentários, definições de folha e outros consumidores indexados
A análise do XLS clássico inclui tipos de letra, preenchimentos e limites XF, linhas de grelha da folha, cores de formas e comentários, referências de tipo de letra de rich text e de gráficos, formatações condicionais legadas e barras de dados ou escalas de cores BIFF12
A análise do XLSX inclui referências de estilo de célula materializadas, sobreposições de estilo, estilos com nome, conjuntos de tipos de letra, preenchimentos, gradientes e limites, estilos diferenciais, barras de dados e escalas de cores
Os tokens de cores RGB diretas, de tema, automáticas, de sistema e inválidas não bloqueiam ranhuras físicas da paleta
Desempenho e contrato de estado
A análise percorre apenas células esparsas armazenadas e metadados de estilo existentes; não materializa células empacotadas nem itera coordenadas não utilizadas da folha de cálculo
As contagens utilizam aritmética de saturação de 64 bits, pelo que intervalos grandes não dão a volta para valores menores
Chamadas repetidas sobre um livro de trabalho inalterado devolvem entradas idênticas e deixam inalteradas as contagens da paleta personalizada e as estatísticas de armazenamento
Exemplo
Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
if Usage[I].Locked then
PreservePaletteSlot(Usage[I].PaletteSlot);