Conclusione
HotXLS non aggiunge i membri ThemeColor / TintAndShade alla facade XLS classica lxHandle. Quei membri appartengono al modello di stile OOXML più recente e non hanno una vera destinazione di archiviazione BIFF .xls che possa essere salvata e riletta. Aggiungerli alla vecchia API XLS creerebbe una superficie fuorviante: i valori verrebbero persi al salvataggio o ridotti a un colore di palette approssimato
La classica API XLS di lxHandle scrive file BIFF .xls. BIFF memorizza i colori di font, bordo e riempimento tramite indici di palette, non slot di colori tema di Office
Usa Color, ColorIndex e Workbook.Colors
Usa
Color quando vuoi assegnare un valore RGB. HotXLS mappa quel valore RGB sulla palette corrente del workbook. Usa
ColorIndex quando vuoi indirizzare direttamente uno slot della palette. Usa
IXLSWorkbook.Colors per personalizzare le voci della palette
Colori tema e tinta/ombreggiatura
ThemeColor e TintAndShade sono concetti di stile OOXML .xlsx. La facade XLS classica non espone queste proprietà perché un workbook BIFF non dispone di una memoria tema/tinta equivalente che Excel possa salvare e rileggere come metadati di tema
Se il codice sorgente usa colori tema e il file di destinazione è .xls, risolvi prima la combinazione tema/tinta in un colore RGB, poi assegna Color o una voce di palette personalizzata. Se la relazione del tema deve rimanere modificabile in Excel, usa la facade XLSX (lxHandleX) e le relative proprietà di stile consapevoli del tema
Esempio
Questo esempio personalizza uno slot della palette e lo usa per un riempimento di cella in un workbook XLS classico
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;