Documentação do HotXLS

Método ScanIndexedColorUsage

Retorna um inventário determinístico de todos os 56 slots físicos da paleta da pasta de trabalho e das definições e referências de cores indexadas que os usam

O método está disponível tanto em IXLSWorkbook quanto em TXLSXWorkbook e não modifica a paleta, células, estilos, formatação condicional nem o estado da pasta de trabalho

Sintaxe

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Resultado

A matriz retornada sempre contém 56 entradas em ordem crescente de slot físico, de 8 a 63

CampoSignificado
ColorIndexO índice público da paleta correspondente, de 1 a 56
PaletteSlotO slot físico de cores indexadas BIFF ou OOXML de 8 a 63
ARGBA cor opaca normalizada atualmente armazenada no slot, ou zero se não puder ser resolvida
DefinitionCountO número de definições indexadas que apontam para o slot
ReferenceCountO número de objetos, células ou posições de formatação condicional cobertas que referenciam essas definições
KindsUm conjunto que descreve cada categoria de consumidor observada
LockedTrue quando o slot tem pelo menos uma definição ou referência e, portanto, deve ser preservado por um plano de otimização da paleta

Cobertura de consumidores

Kinds pode incluir fontes, primeiros planos de preenchimento, planos de fundo de preenchimento, gradientes, bordas, formatações condicionais, gráficos, formas, comentários, configurações de planilha e outros consumidores indexados

A varredura do XLS clássico inclui fontes, preenchimentos e bordas XF, linhas de grade da planilha, cores de formas e comentários, referências de fonte de rich text e de gráficos, formatações condicionais herdadas e barras de dados ou escalas de cores BIFF12

A varredura do XLSX inclui referências de estilo de célula materializadas, sobreposições de estilo, estilos nomeados, pools de fontes, preenchimentos, gradientes e bordas, estilos diferenciais, barras de dados e escalas de cores

Tokens de cores RGB diretas, de tema, automáticas, do sistema e inválidas não bloqueiam slots físicos da paleta

Desempenho e contrato de estado

A varredura percorre somente células esparsas armazenadas e metadados de estilo existentes; ela não materializa células empacotadas nem itera coordenadas não utilizadas da planilha

As contagens usam aritmética de saturação de 64 bits, de modo que intervalos grandes não voltam a valores menores

Chamadas repetidas sobre uma pasta de trabalho inalterada retornam 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