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
| Campo | Significado |
|---|---|
ColorIndex | El índice público de paleta correspondiente, del 1 al 56 |
PaletteSlot | La ranura física de color indexado BIFF u OOXML, del 8 al 63 |
ARGB | El color opaco normalizado almacenado actualmente en la ranura, o cero si no se puede resolver |
DefinitionCount | El número de definiciones indexadas que apuntan a la ranura |
ReferenceCount | El número de objetos, celdas o posiciones cubiertas por formatos condicionales que hacen referencia a esas definiciones |
Kinds | Un conjunto que describe todas las categorías de consumidores observadas |
Locked | True 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);