Documentación HotXLS

Método ScanIndexedColorUsage

Devuelve un inventario determinista de las 56 ranuras físicas de la paleta del libro y de las definiciones y referencias de colores indexados que las usan

El método está disponible tanto en IXLSWorkbook como en TXLSXWorkbook y no modifica la paleta, las celdas, los estilos, los formatos condicionales ni el estado del libro

Sintaxis

function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;

Resultado

La matriz devuelta siempre contiene 56 entradas en orden ascendente de ranura física del 8 al 63

CampoSignificado
ColorIndexEl índice público de paleta correspondiente, del 1 al 56
PaletteSlotLa ranura física de color indexado BIFF u OOXML, del 8 al 63
ARGBEl color opaco normalizado almacenado actualmente en la ranura, o cero si no se puede resolver
DefinitionCountEl número de definiciones indexadas que apuntan a la ranura
ReferenceCountEl número de objetos, celdas o posiciones cubiertas por formatos condicionales que hacen referencia a esas definiciones
KindsUn conjunto que describe todas las categorías de consumidores observadas
LockedTrue cuando la ranura tiene al menos una definición o referencia y, por tanto, debe preservarse en un plan de optimización de la paleta

Cobertura de consumidores

Kinds puede incluir fuentes, primeros planos de relleno, fondos de relleno, degradados, bordes, formatos condicionales, gráficos, formas, comentarios, configuración de hojas de cálculo y otros consumidores indexados

El examen de XLS clásico incluye fuentes, rellenos y bordes XF, líneas de cuadrícula de la hoja de cálculo, colores de formas y comentarios, referencias de fuentes de texto enriquecido y de gráficos, formatos condicionales heredados y barras de datos o escalas de colores BIFF12

El examen de XLSX incluye referencias de estilos de celda materializadas, superposiciones de estilos, estilos con nombre, grupos de fuentes, rellenos, degradados y bordes, estilos diferenciales, barras de datos y escalas de colores

Los tokens de color RGB directos, de tema, automáticos, del sistema y no válidos no bloquean las ranuras físicas de la paleta

Rendimiento y contrato de estado

El examen recorre únicamente las celdas dispersas almacenadas y los metadatos de estilo existentes; no materializa celdas empaquetadas ni itera coordenadas no usadas de la hoja de cálculo

Los recuentos usan aritmética de saturación de 64 bits, de modo que los rangos grandes no pueden dar la vuelta a un valor menor

Las llamadas repetidas sobre un libro sin cambios devuelven entradas idénticas y dejan sin modificar los recuentos de paletas personalizadas y las estadísticas de almacenamiento

Ejemplo

Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
  if Usage[I].Locked then
    PreservePaletteSlot(Usage[I].PaletteSlot);

Véase también