Conclusion
HotXLS n'ajoute pas de membres ThemeColor / TintAndShade à la façade XLS classique lxHandle. Ces membres appartiennent au modèle de style OOXML le plus récent et n'ont pas de cible de stockage BIFF .xls réelle pouvant être reprise par round-trip. Les ajouter à l'ancienne API XLS créerait une surface trompeuse : les valeurs seraient soit perdues à l'enregistrement, soit réduites à une couleur de palette approximative
L'API XLS classique lxHandle écrit des fichiers BIFF .xls. BIFF stocke les couleurs de police, de bordure et de remplissage via des index de palette, et non via des emplacements de couleur de thème Office
Utiliser Color, ColorIndex et Workbook.Colors
Utilisez
Color lorsque vous souhaitez assigner une valeur RGB. HotXLS mappe cette valeur RGB sur la palette du classeur courant. Utilisez
ColorIndex lorsque vous souhaitez adresser directement un emplacement de palette. Utilisez
IXLSWorkbook.Colors pour personnaliser les entrées de palette
Couleurs de thème et teinte/ombrage
ThemeColor et TintAndShade sont des concepts de style OOXML .xlsx. La façade XLS classique n'expose pas ces propriétés car un classeur BIFF n'a pas de stockage de thème/teinte équivalent qu'Excel puisse recharger en round-trip comme métadonnées de thème
Si le code source utilise des couleurs de thème et que le fichier cible est .xls, résolvez d'abord la combinaison thème/teinte en une couleur RGB, puis assignez Color ou une entrée de palette personnalisée. Si la relation de thème doit rester modifiable dans Excel, utilisez la façade XLSX (lxHandleX) et ses propriétés de style sensibles au thème
Exemple
Cet exemple personnalise un emplacement de palette et l'utilise pour un remplissage de cellule dans un classeur XLS classique
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;