结论
HotXLS 不会向经典 lxHandle XLS 外观添加 ThemeColor / TintAndShade 成员。这些成员属于较新的 OOXML 样式模型,并没有真实、可往返的 BIFF .xls 存储目标。将它们添加到旧的 XLS API 会造成误导性的接口表面:值要么在保存时丢失,要么被降级为近似的调色板颜色
经典 lxHandle XLS API 写入 BIFF .xls 文件。BIFF 通过调色板索引存储字体、边框和填充颜色,而非 Office 主题颜色槽
使用 Color、ColorIndex 和 Workbook.Colors
当需要分配 RGB 值时使用
Color,HotXLS 会将该 RGB 值映射到当前工作簿调色板。当需要直接寻址调色板槽时使用
ColorIndex。使用
IXLSWorkbook.Colors 自定义调色板条目
主题颜色与色调/阴影
ThemeColor 和 TintAndShade 是 OOXML .xlsx 样式概念。经典 XLS 外观不公开这些属性,因为 BIFF 工作簿没有 Excel 可作为主题元数据往返的等价主题/色调存储
如果源代码使用主题颜色,而目标文件是 .xls,请先将主题/色调组合解析为 RGB 颜色,然后再分配 Color 或自定义调色板条目。如果必须在 Excel 中保持主题关系可编辑,请使用 XLSX 外观(lxHandleX)及其感知主题的样式属性
示例
本示例自定义一个调色板槽,并在经典 XLS 工作簿中将其用于单元格填充
Workbook.Colors[8, 0] := RGB(42, 107, 191);
Workbook.Worksheets[1].Range['A1', 'D1'].Interior.ColorIndex := 8;