TXLSXConditionalFormats es la colección de reglas expuesta por TXLSXWorksheet.ConditionalFormats y admite reglas de celda, visuales, de texto, de clasificación y de promedio
Métodos de la colección
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;
Miembros de la regla
| Range, Op, Formula1 and Formula2 | Define una regla estándar de comparación de celdas |
| Style | Formato diferencial diferido usado por reglas de celda y de expresión |
| DataBar, ColorScale and IconSet | Datos visuales para sus respectivos tipos de regla |
| Priority and StopIfTrue | Controlan el orden de las reglas de la hoja y el comportamiento de cortocircuito |
| Text, Rank, Percent, Bottom and AboveAverage | Parámetros de reglas de texto, superiores o inferiores y de promedio |
| TimePeriod | Intervalo de fechas relativas para reglas de periodos de tiempo |
Rangos de objetivos de reglas
Desde 2.384.76, los objetivos locales de la hoja aceptan celdas individuales, rectángulos de celdas, columnas completas como $B:$D y filas completas como $5:$8; los extremos invertidos se normalizan, y los espacios, tabuladores o saltos de línea separan varias áreas
Las referencias absolutas y mixtas conservan su texto Range original; la coincidencia usa las filas 1 a 1048576 y las columnas A a XFD, omite las áreas mal formadas o fuera de la cuadrícula, y mantiene activas las áreas hermanas válidas sin lanzar una nueva excepción del setter
Las referencias calificadas por hoja y externas no son áreas objetivo; cada regla pertenece a su hoja de cálculo, y los signos de dólar deben aparecer en posiciones ordinarias de referencia A1
La búsqueda de reglas, la eliminación de celdas y rangos, y el evaluador de formato condicional usan la misma geometría de objetivos; las reglas de agregación cuentan las áreas superpuestas una sola vez y visitan solo los valores de celdas almacenados, incluso cuando el objetivo cubre toda la cuadrícula
Desde 2.384.77, las ediciones de filas y columnas también transforman los objetivos de regla de eje completo dentro de la cuadrícula de la hoja; una extensión que abarca cada fila o columna permanece completa cuando ese eje se edita, mientras que las ediciones del otro eje mueven, encogen o eliminan el objetivo
La clonación de rangos conserva el contrato de cobertura completa: cada área objetivo debe caber dentro del rectángulo de origen antes de copiar la regla, y una intersección parcial por sí sola no copia una regla; los objetivos de eje completo pueden clonarse desde un origen de fila entera o de columna entera cuando el destino permanece dentro de la cuadrícula
Las ediciones interiores preservan los dominios de fórmulas relativas de expresión y de comparación de celdas dividiendo un objetivo cuando hace falta y fusionando las partes que permanecen equivalentes en un ancla común; la biblioteca no reproduce el formato adicional de fin de cuadrícula que Excel puede copiar implícitamente durante la inserción
Ejemplo
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 condicionales
Style.SetNumFormatId establece un formato de número diferencial con independencia del formato base de la celda objetivo; el ID 0 es un restablecimiento explícito a General, mientras que una anulación ausente deja vigente el formato base
Los ID de formato personalizado son 164 + Index, donde Index es el resultado con base cero de Workbook.NumberFormats.Add; el guardado XLSX retiene los formatos referenciados solo por reglas condicionales y actualiza los ID cuando el grupo de formatos se compacta
Estilos condicionales de ODS
La importación y exportación de ODS retiene los estilos diferenciales de las reglas de comparación de celdas y de expresión: color, nombre, tamaño, negrita, cursiva y subrayado de la fuente, fondo sólido o transparente, y los formatos de número que admite el conversor de formatos de número de ODS
El negro explícito, el peso normal de la fuente, la ausencia de subrayado y el fondo transparente siguen siendo anulaciones; los atributos ausentes de la regla continúan usando el formato base de la celda objetivo
Los colores de tema e indexados se exportan como colores resueltos, así que su apariencia sobrevive pero su identidad de tema o de paleta no sobrevive al round trip por ODS; los metadatos del esquema de fuentes no tienen mapeo ODS
ODS usa un subrayado simple o doble ordinario en lugar del subrayado contable, y los rellenos con patrón se representan mediante un color de fondo; las anulaciones de borde y alineación no se exponen en TXLSDxfStyle
La importación ODS verificada de Excel 16 retiene los colores de resaltado, los restablecimientos explícitos, el subrayado y el formato de porcentaje, pero ignora la familia y el tamaño condicionales de la fuente; LibreOffice 26.2.5.2 lee esas propiedades de estilos con nombre, y su XLSX convertido las retiene en Excel
Desde 2.384.75, las reglas de comparación de celdas y de expresión de ODS usan portadores de blancos repetidos compactos a lo largo de sus objetivos completos, incluidas filas completas, columnas completas y rangos anchos; las reglas superpuestas conservan su orden, y el relleno de solo portadores no crea celdas almacenadas cuando HotXLS reabre el archivo
Véase también