Fazit
HotXLS fügt der klassischen lxHandle XLS-Fassade keine ThemeColor- / TintAndShade-Elemente hinzu. Diese Elemente gehören zum neueren OOXML-Stilmodell und haben kein echtes, verlustfreies BIFF-.xls-Speicherziel. Das Hinzufügen dieser Elemente zur alten XLS-API würde eine irreführende Oberfläche schaffen: Werte würden beim Speichern entweder verloren gehen oder auf eine ungefähre Palettenfarbe reduziert werden
Die klassische lxHandle XLS-API schreibt BIFF-.xls-Dateien. BIFF speichert Schriftart-, Rahmen- und Füllfarben über Palettenindizes, nicht über Office-Designfarben-Slots
Color, ColorIndex und Workbook.Colors verwenden
Verwenden Sie
Color, wenn Sie einen RGB-Wert zuweisen möchten. HotXLS ordnet diesen RGB-Wert der aktuellen Arbeitsmappen-Palette zu. Verwenden Sie
ColorIndex, wenn Sie einen Paletten-Slot direkt ansprechen möchten. Verwenden Sie
IXLSWorkbook.Colors, um Paletteneinträge anzupassen
Designfarben und Tönung/Schattierung
ThemeColor und TintAndShade sind OOXML-.xlsx-Stilkonzepte. Die klassische XLS-Fassade stellt diese Eigenschaften nicht bereit, da eine BIFF-Arbeitsmappe keinen gleichwertigen Design-/Tönung-Speicher hat, den Excel als Design-Metadaten übertragen kann
Wenn Quellcode Designfarben verwendet und die Zieldatei .xls ist, lösen Sie die Design-/Tönung-Kombination zunächst in eine RGB-Farbe auf und weisen Sie dann Color oder einen benutzerdefinierten Paletteneintrag zu. Wenn die Designbeziehung in Excel bearbeitbar bleiben soll, verwenden Sie die XLSX-Fassade (lxHandleX) und deren designbewusste Stileigenschaften
Beispiel
Dieses Beispiel passt einen Paletten-Slot an und verwendet ihn für eine Zellfüllung in einer klassischen XLS-Arbeitsmappe
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;