Documentação do HotXLS

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

CampoSignificado
ColorIndexO índice público da paleta correspondente, de 1 a 56
PaletteSlotA ranhura física de cores indexadas BIFF ou OOXML de 8 a 63
ARGBA cor opaca normalizada atualmente armazenada na ranhura, ou zero se não puder ser resolvida
DefinitionCountO número de definições indexadas que apontam para a ranhura
ReferenceCountO número de objetos, células ou posições de formatação condicional abrangidas que referenciam essas definições
KindsUm conjunto que descreve cada categoria de consumidor observada
LockedTrue 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);

Veja também