نتیجهگیری
HotXLS اعضای ThemeColor / TintAndShade را به نمای XLS کلاسیک lxHandle اضافه نمیکند. این اعضا به مدل سبکدهی OOXML جدیدتر تعلق دارند و هدف ذخیرهسازی BIFF .xls واقعی و قابل دور زدن ندارند. اضافه کردن آنها به API قدیمی XLS یک سطح گمراهکننده ایجاد میکرد: مقادیر یا در ذخیرهسازی از دست میرفتند یا به یک رنگ palette تقریبی کاهش مییافتند
API XLS کلاسیک lxHandle فایلهای BIFF .xls مینویسد. BIFF رنگهای فونت، حاشیه و پر کردن را از طریق اندیسهای palette ذخیره میکند، نه شکافهای رنگ theme آفیس
استفاده از Color، ColorIndex و Workbook.Colors
از
Color استفاده کنید وقتی میخواهید یک مقدار RGB اختصاص دهید. HotXLS آن مقدار RGB را به palette workbook جاری نگاشت میکند. از
ColorIndex استفاده کنید وقتی میخواهید مستقیماً یک شکاف palette آدرسدهی کنید. از
IXLSWorkbook.Colors برای سفارشیسازی ورودیهای palette استفاده کنید
رنگهای theme و tint/shade
ThemeColor و TintAndShade مفاهیم سبک OOXML .xlsx هستند. نمای XLS کلاسیک این خاصیتها را نشان نمیدهد زیرا یک workbook BIFF هیچ فضای ذخیرهسازی معادل theme/tint که اکسل بتواند به عنوان متادیتای theme دور بزند ندارد
اگر کد منبع از رنگهای theme استفاده میکند و فایل هدف .xls است، ترکیب theme/tint را ابتدا به یک رنگ RGB تبدیل کنید، سپس Color یا یک ورودی palette سفارشی را اختصاص دهید. اگر رابطه theme باید در اکسل قابل ویرایش بماند، از نمای XLSX (lxHandleX) و خاصیتهای سبکدهی آگاه از theme آن استفاده کنید
مثال
این مثال یک شکاف palette را سفارشی میکند و از آن برای پر کردن سلول در یک workbook XLS کلاسیک استفاده میکند
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;