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
| Campo | Significado |
|---|---|
ColorIndex | O índice público da paleta correspondente, de 1 a 56 |
PaletteSlot | O slot físico de cores indexadas BIFF ou OOXML de 8 a 63 |
ARGB | A cor opaca normalizada atualmente armazenada no slot, ou zero se não puder ser resolvida |
DefinitionCount | O número de definições indexadas que apontam para o slot |
ReferenceCount | O número de objetos, células ou posições de formatação condicional cobertas que referenciam essas definições |
Kinds | Um conjunto que descreve cada categoria de consumidor observada |
Locked | True 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);