Concluzie
HotXLS nu adaugă membrii ThemeColor / TintAndShade la fațada XLS clasică lxHandle. Acești membri aparțin modelului de stil OOXML mai nou și nu au o țintă de stocare BIFF .xls reală, cu dus-întors. Adăugarea lor la vechiul API XLS ar crea o suprafață înșelătoare: valorile ar fi fie pierdute la salvare, fie reduse la o culoare aproximativă de paletă
API-ul XLS clasic lxHandle scrie fișiere BIFF .xls. BIFF stochează culorile fontului, bordurii și umplerii prin indecși de paletă, nu prin sloturi de culori temă Office
Utilizarea Color, ColorIndex și Workbook.Colors
Utilizați
Color când doriți să atribuiți o valoare RGB. HotXLS mapează acea valoare RGB la paleta curentă a registrului de lucru. Utilizați
ColorIndex când doriți să adresați direct un slot de paletă. Utilizați
IXLSWorkbook.Colors pentru a personaliza intrările din paletă
Culori temă și nuanță/umbră
ThemeColor și TintAndShade sunt concepte de stil OOXML .xlsx. Fațada XLS clasică nu expune aceste proprietăți deoarece un registru de lucru BIFF nu are stocare echivalentă temă/nuanță pe care Excel să o poată transfera ca metadate de temă
Dacă codul sursă utilizează culori de temă și fișierul țintă este .xls, rezolvați mai întâi combinația temă/nuanță la o culoare RGB, apoi atribuiți Color sau o intrare personalizată în paletă. Dacă relația de temă trebuie să rămână editabilă în Excel, utilizați fațada XLSX (lxHandleX) și proprietățile sale de stil cu conștientizare a temei
Exemplu
Acest exemplu personalizează un slot de paletă și îl utilizează pentru o umplere de celulă într-un registru de lucru XLS clasic
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;