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 destino de las reglas
Desde la versión 2.384.76, los destinos locales de la hoja aceptan celdas individuales, rectángulos de celdas, columnas enteras como $B:$D y filas enteras 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 malformadas 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 las externas no son áreas de destino; 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, el borrado de celdas y rangos y el evaluador de formato condicional usan la misma geometría de destino; las reglas agregadas cuentan las áreas solapadas una sola vez y solo recorren los valores de celdas almacenados, incluso cuando el destino abarca toda la cuadrícula
Desde la versión 2.384.77, las ediciones de filas y columnas también transforman los destinos de reglas de eje completo dentro de la cuadrícula de la hoja; una extensión que abarca todas las filas o columnas sigue completa cuando se edita ese eje, mientras que las ediciones del otro eje mueven, reducen o eliminan el destino
La clonación de rangos conserva el contrato de cobertura completa: cada área de destino debe caber dentro del rectángulo de origen antes de copiar la regla, y una intersección parcial por sí sola no copia la regla; los destinos de eje completo pueden clonarse desde un origen de fila o columna entera cuando el destino se mantiene dentro de la cuadrícula
Las ediciones interiores preservan los dominios de las expresiones relativas y de las fórmulas de comparación de celdas dividiendo un destino cuando hace falta y fusionando las partes que siguen siendo equivalentes en un anclaje 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 numérico diferencial de forma independiente del formato base de la celda de destino; el ID 0 es un restablecimiento explícito a General, mientras que una sustitución ausente deja vigente el formato base
Los IDs de formato personalizado son 164 + Index, donde Index es el resultado de Workbook.NumberFormats.Add con base cero; el guardado XLSX retiene los formatos a los que solo hacen referencia reglas condicionales y actualiza los IDs 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 numéricos que admite el convertidor de formatos numéricos de ODS
El negro explícito, el grosor de fuente normal, la ausencia de subrayado y el fondo transparente siguen siendo sustituciones; los atributos ausentes de la regla siguen usando el formato base de la celda de destino
Los colores de tema e indexados se exportan como colores resueltos, de modo que su apariencia sobrevive, pero su identidad de tema o paleta no hace el round-trip por ODS; los metadatos del esquema de fuentes no tienen correspondencia en ODS
ODS usa el subrayado sencillo o doble ordinario en lugar del subrayado contable, y los rellenos con patrón se representan mediante un color de fondo; las sustituciones de borde y alineación no están expuestas por TXLSDxfStyle
La importación ODS verificada con 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 la versión 2.384.75, las reglas de comparación de celdas y de expresión de ODS usan portadores compactos de celdas en blanco repetidas en sus destinos completos, incluidas filas enteras, columnas enteras y rangos anchos; las reglas solapadas conservan su orden, y el relleno de solo portador no crea celdas almacenadas al reabrir con HotXLS
Véase también