TXLSXConditionalFormats é a coleção de regras exposta por TXLSXWorksheet.ConditionalFormats e oferece regras de célula, visuais, de texto, classificação e média
Métodos da coleção
function Add(const ARange: WideString; AOp: TXLSXCfOperator; const AFormula1: WideString): Integer;
function AddDataBar(const ARange: WideString; AColor: LongWord; AMinKind: TXLSCfValueKind; const AMinValue: WideString; AMaxKind: TXLSCfValueKind; const AMaxValue: WideString): Integer;
function AddColorScale2(...): Integer;
function AddColorScale3(...): Integer;
function AddIconSet(const ARange: WideString; ASetType: TXLSIconSetType): Integer;
function AddExpression(const ARange, AFormula: WideString): Integer;
function AddTextRule(const ARange: WideString; AKind: TXLSCfKind; const AText: WideString): Integer;
function AddTop10(const ARange: WideString; ARank: Integer; ABottom, APercent: Boolean): Integer;
function AddAboveAverage(const ARange: WideString; AAbove: Boolean): Integer;
function AddSimpleRule(const ARange: WideString; AKind: TXLSCfKind): Integer;
Membros da regra
| Range, Op, Formula1 and Formula2 | Define uma regra padrão de comparação de células |
| Style | Formato diferencial tardio usado por regras de célula e expressão |
| DataBar, ColorScale and IconSet | Dados visuais para seus respectivos tipos de regra |
| Priority and StopIfTrue | Controlam a ordem das regras da planilha e o comportamento de curto-circuito |
| Text, Rank, Percent, Bottom and AboveAverage | Parâmetros para regras de texto, superior ou inferior e média |
| TimePeriod | Faixa de datas relativas para regras de período |
Intervalos de alvo das regras
A partir de 2.384.76, os alvos locais da planilha aceitam células individuais, retângulos de células, colunas inteiras como $B:$D e linhas inteiras como $5:$8; extremos invertidos são normalizados, e espaços, tabulações ou quebras de linha separam múltiplas áreas
Referências absolutas e mistas mantêm o texto original de Range; a correspondência usa linhas de 1 a 1048576 e colunas de A a XFD, pula áreas malformadas ou fora da grade, e mantém as áreas irmãs válidas ativas sem lançar uma nova exceção no setter
Referências com qualificação de planilha e referências externas não são áreas de alvo; cada regra pertence à sua planilha, e os cifrões devem aparecer nas posições comuns de referência A1
A busca de regras, a exclusão de células e intervalos e o avaliador de formato condicional usam a mesma geometria de alvos; regras agregadas contam áreas sobrepostas uma única vez e visitam apenas valores de células armazenados, mesmo quando o alvo cobre a grade inteira
A partir de 2.384.77, edições de linhas e colunas também transformam alvos de regra de eixo inteiro dentro da grade da planilha; uma extensão que cobre toda linha ou coluna permanece completa quando esse eixo é editado, enquanto edições no outro eixo movem, encolhem ou removem o alvo
A clonagem de intervalos mantém o contrato de cobertura completa: toda área de alvo precisa caber dentro do retângulo de origem antes de a regra ser copiada, e interseção parcial sozinha não copia uma regra; alvos de eixo inteiro podem ser clonados de uma origem de linha inteira ou coluna inteira quando o destino fica dentro da grade
Edições internas preservam os domínios relativos de expressão e de fórmulas de comparação de células dividindo um alvo quando necessário e mesclando partes que permanecem equivalentes em uma âncora comum; a biblioteca não reproduz a formatação extra de fim de grade que o Excel pode copiar implicitamente durante inserções
Exemplo
var Index: Integer;
begin
Index := Sheet.ConditionalFormats.AddExpression('B2:B100', 'B2<0');
Sheet.ConditionalFormats[Index].Style.SetFillBgColor($0000FF);
Sheet.ConditionalFormats.AddColorScale3('C2:C100', $0000FF, $00FFFF, $00FF00, cfvMinOfRange, '', cfvPercentile, '50', cfvMaxOfRange, '');
end;
Formatos numéricos condicionais
Style.SetNumFormatId define um formato numérico diferencial independente do formato base da célula de alvo; o ID 0 é uma redefinição explícita para General, enquanto a ausência de override deixa o formato base em vigor
IDs de formatos personalizados são 164 + Index, em que Index é o resultado com base zero de Workbook.NumberFormats.Add; o salvamento em XLSX retém formatos referenciados apenas por regras condicionais e atualiza os IDs quando o pool de formatos é compactado
Estilos condicionais ODS
A importação e a exportação ODS retêm os estilos diferenciais das regras de comparação de células e de expressão: cor, nome, tamanho, negrito, itálico e sublinhado da fonte, fundo sólido ou transparente, e os formatos numéricos suportados pelo conversor de formatos numéricos do ODS
Preto explícito, peso normal da fonte, ausência de sublinhado e fundo transparente permanecem overrides; atributos ausentes da regra continuam usando a formatação base da célula de alvo
Cores de tema e indexadas são exportadas como cores resolvidas, então a aparência sobrevive, mas a identidade de tema ou paleta não faz round-trip pelo ODS; metadados de esquema de fonte não têm mapeamento no ODS
O ODS usa sublinhado simples ou duplo comum em vez de sublinhado contábil, e preenchimentos com padrão são representados por uma cor de fundo; overrides de borda e alinhamento não são expostos pelo TXLSDxfStyle
A importação ODS verificada no Excel 16 retém cores de destaque, redefinições explícitas, sublinhado e formatação de porcentagem, mas ignora família e tamanho condicionais de fonte; o LibreOffice 26.2.5.2 lê essas propriedades de estilo nomeado, e seu XLSX convertido as retém no Excel
A partir de 2.384.75, as regras de comparação de células e de expressão do ODS usam portadores compactos repetidos de branco em seus alvos completos, incluindo linhas inteiras, colunas inteiras e intervalos largos; regras sobrepostas mantêm sua ordem, e preenchimento apenas de portadores não cria células armazenadas quando reaberto pelo HotXLS
Veja também