Méthode ScanIndexedColorUsage
Renvoie un inventaire déterministe des 56 emplacements physiques de la palette du classeur et des définitions et références de couleurs indexées qui les utilisent
La méthode est disponible sur IXLSWorkbook et TXLSXWorkbook et ne modifie ni la palette, ni les cellules, ni les styles, ni les mises en forme conditionnelles, ni l'état du classeur
Syntaxe
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
Résultat
Le tableau renvoyé contient toujours 56 entrées dans l'ordre croissant des emplacements physiques de 8 à 63
| Champ | Signification |
|---|---|
ColorIndex | L'index public de palette correspondant, de 1 à 56 |
PaletteSlot | L'emplacement physique de couleur indexée BIFF ou OOXML, de 8 à 63 |
ARGB | La couleur opaque normalisée actuellement stockée à l'emplacement, ou zéro si elle ne peut être résolue |
DefinitionCount | Le nombre de définitions indexées qui pointent vers l'emplacement |
ReferenceCount | Le nombre d'objets, de cellules ou de positions de mises en forme conditionnelles couvertes qui référencent ces définitions |
Kinds | Un ensemble décrivant chaque catégorie de consommateurs observée |
Locked | True lorsque l'emplacement comporte au moins une définition ou référence et doit donc être préservé par un plan d'optimisation de palette |
Couverture des consommateurs
Kinds peut inclure les polices, les premiers plans de remplissage, les arrière-plans de remplissage, les dégradés, les bordures, les mises en forme conditionnelles, les graphiques, les formes, les commentaires, les paramètres de feuille de calcul et d'autres consommateurs indexés
Le balayage XLS classique inclut les polices, les remplissages et bordures XF, les quadrillages de feuilles de calcul, les couleurs de formes et de commentaires, les références de polices de texte enrichi et de graphiques, les mises en forme conditionnelles héritées et les barres de données ou échelles de couleurs BIFF12
Le balayage XLSX inclut les références de styles de cellules matérialisées, les superpositions de styles, les styles nommés, les pools de polices, de remplissages, de dégradés et de bordures, les styles différentiels, les barres de données et les échelles de couleurs
Les jetons de couleurs RVB directes, de thème, automatiques, système et invalides ne verrouillent pas les emplacements physiques de la palette
Contrat de performances et d'état
Le balayage parcourt uniquement les cellules clairsemées stockées et les métadonnées de styles existantes ; il ne matérialise pas de cellules compactées et n'itère pas sur les coordonnées de feuilles de calcul inutilisées
Les comptages utilisent une arithmétique 64 bits saturante afin que de grandes plages ne puissent pas revenir à une valeur inférieure
Des appels répétés sur un classeur inchangé renvoient des entrées identiques et laissent les compteurs de palette personnalisée et les statistiques de stockage inchangés
Exemple
Usage := Workbook.ScanIndexedColorUsage;
for I := 0 to High(Usage) do
if Usage[I].Locked then
PreservePaletteSlot(Usage[I].PaletteSlot);