Documentação do HotXLS

Método BuildBiffPalettePlan

Constrói um plano determinístico somente leitura para representar cores RGB diretas e cores de tema resolvidas nos 56 slots físicos da paleta BIFF

O método está disponível tanto em IXLSWorkbook quanto em TXLSXWorkbook e nunca altera entradas da paleta, estilos, células, contagens de cores personalizadas ou comportamento de salvamento

Sintaxe

function BuildBiffPalettePlan: TXLSBiffPalettePlan;

Plano de slots

Slots sempre contém 56 entradas em ordem de índice público de 1 a 56 e em ordem de slot físico de 8 a 63

CampoSignificado
SourceARGBA cor normalizada atualmente armazenada no slot da paleta
TargetARGBA cor proposta para o slot sem aplicá-la
DefinitionCount e ReferenceCountOs consumidores indexados herdados de ScanIndexedColorUsage
KindsAs categorias de consumidores indexados que protegem o slot
LockedTrue quando o slot de origem deve permanecer inalterado
ChangedTrue quando o destino proposto difere da cor de origem

Mapeamentos de destino

Targets agrega cores iguais e registra contagem de definições, contagem de referências renderizadas, categorias de consumidores, peso de frequência efetivo, índices públicos e físicos selecionados, ARGB mapeado, erro quadrático OKLab e status de correspondência exata

Referências renderizadas determinam o peso efetivo quando presentes; caso contrário, definições armazenadas mantêm cores não referenciadas representadas no plano

Cores diretas e cores de tema resolvidas de fontes, preenchimentos, gradientes, bordas, estilos diferenciais, barras de dados e escalas de cores participam do planejamento, enquanto cores indexadas, automáticas, inválidas e parcialmente transparentes não se tornam destinos

Comportamento de planejamento

Cores exatas já existentes na paleta são retidas em seu slot correspondente mais baixo e consumidores indexados bloqueiam seus slots de origem antes que qualquer slot livre seja considerado

Quando todos os destinos exclusivos cabem, os slots livres recebem cores exatas em ordem determinística de ARGB

Quando há mais cores do que slots livres, uma passada de agrupamento OKLab ponderada por frequência, com iterações fixas, escolhe as cores de destino restantes, enquanto os slots bloqueados e os slots exatos retidos permanecem fixos

Mapeamentos finais com distância igual usam o menor índice público da paleta

Identidade e estatísticas do plano

SourcePaletteGeneration e SourcePaletteHash identificam o instantâneo da paleta a partir do qual o plano foi construído

LockedSlotCount, ChangedSlotCount, TotalTargetWeight, ExactTargetWeight, WeightedError, MaxDistanceSquared e Quantized resumem o resultado para inspeção e decisões de política

Exemplo

Plan := Workbook.BuildBiffPalettePlan;
if Plan.Quantized then
  LogPaletteError(Plan.WeightedError);

for I := 0 to High(Plan.Slots) do
  if Plan.Slots[I].Changed then
    PreviewPaletteChange(Plan.Slots[I]);

Veja também