Docs HotXLS

TXLSXConditionalFormat and TXLSXConditionalFormats classes

TXLSXConditionalFormats is the rule collection exposed by TXLSXWorksheet.ConditionalFormats and supports cell, visual, text, ranking and average rules

Collection-methods

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;

Rule members

Range, Op, Formula1 and Formula2Define a standard cell comparison rule
StyleLazy differential format used by cell and expression rules
DataBar, ColorScale and IconSetVisual payloads for their respective rule kinds
Priority and StopIfTrueControl worksheet rule order and short-circuit behavior
Text, Rank, Percent, Bottom and AboveAverageParameters for text, top or bottom and average rules
TimePeriodRelative-date band for time-period rules

Plages cibles des règles

Depuis la 2.384.76, les cibles locales à la feuille acceptent des cellules isolées, des rectangles de cellules, des colonnes entières comme $B:$D et des lignes entières comme $5:$8 ; les extrémités inversées sont normalisées, et des espaces, tabulations ou sauts de ligne séparent plusieurs zones
Les références absolues et mixtes conservent leur texte Range d'origine ; la correspondance utilise les lignes 1 à 1048576 et les colonnes A à XFD, ignore les zones malformées ou hors grille, et garde les zones sœurs valides actives sans lever une nouvelle exception de setter
Les références qualifiées par feuille et externes ne sont pas des zones cibles ; chaque règle appartient à sa feuille de calcul, et les signes dollar doivent figurer à des positions de référence A1 ordinaires
La recherche de règles, la suppression de cellules et de plages et l'évaluateur de mise en forme conditionnelle utilisent la même géométrie de cible ; les règles d'agrégat comptent une seule fois les zones qui se chevauchent et ne visitent que les valeurs de cellules stockées, même quand la cible couvre toute la grille
Depuis la 2.384.77, les éditions de lignes et de colonnes transforment aussi les cibles de règles sur axes entiers à l'intérieur de la grille de la feuille ; une étendue couvrant chaque ligne ou colonne reste complète quand cet axe est modifié, tandis que les éditions de l'autre axe déplacent, réduisent ou suppriment la cible
Le clonage de plages conserve le contrat de couverture complète : chaque zone cible doit tenir à l'intérieur du rectangle source avant que la règle soit copiée, et une simple intersection partielle ne copie pas de règle ; les cibles sur axes entiers peuvent être clonées depuis une source de ligne ou de colonne entière tant que la destination reste dans la grille
Les éditions intérieures préservent les domaines de formules relatifs des règles d'expression et de comparaison de cellules en scindant une cible si besoin et en fusionnant les parties qui restent équivalentes à un ancre commun ; la bibliothèque ne reproduit pas la mise en forme supplémentaire en fin de grille qu'Excel peut copier implicitement lors d'une insertion

Exemple

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;

Formats de nombre conditionnels

Style.SetNumFormatId définit un format de nombre différentiel indépendamment du format de base de la cellule cible ; l'ID 0 est une réinitialisation explicite en General, tandis qu'une surcharge absente laisse le format de base en vigueur
Les ID de formats personnalisés valent 164 + Index, où Index est le résultat à base zéro de Workbook.NumberFormats.Add ; l'enregistrement XLSX conserve les formats référencés uniquement par des règles conditionnelles et met à jour les IDs quand le pool de formats est compacté

Styles conditionnels ODS

L'import et l'export ODS conservent les styles différentiels des règles de comparaison de cellules et d'expression : couleur, nom, taille, gras, italique et soulignement de police, arrière-plan plein ou transparent, et formats de nombre pris en charge par le convertisseur de formats de nombre ODS
Le noir explicite, la graisse de police normale, l'absence de soulignement et l'arrière-plan transparent restent des surcharges ; les attributs absents de la règle continuent d'utiliser la mise en forme de base de la cellule cible
Les couleurs de thème et indexées sont exportées comme couleurs résolues : leur apparence survit, mais leur identité de thème ou de palette ne passe pas par ODS ; les métadonnées de schéma de police n'ont pas de correspondance ODS
ODS utilise un soulignement simple ou double ordinaire plutôt que le soulignement comptable, et les remplissages à motifs sont représentés par une couleur d'arrière-plan ; les surcharges de bordure et d'alignement ne sont pas exposées par TXLSDxfStyle
L'import ODS vérifié d'Excel 16 conserve les couleurs de surbrillance, les réinitialisations explicites, le soulignement et le formatage en pourcentage mais ignore la famille et la taille de police conditionnelles ; LibreOffice 26.2.5.2 lit ces propriétés de styles nommés, et son XLSX converti les conserve dans Excel
Depuis la 2.384.75, les règles ODS de comparaison de cellules et d'expression utilisent des cellules porteuses de blancs répétés compactes sur l'intégralité de leurs cibles, y compris lignes entières, colonnes entières et plages larges ; les règles qui se chevauchent gardent leur ordre, et le remplissage uniquement porteur ne crée pas de cellules stockées à la réouverture par HotXLS

Voir aussi