Пользовательская палитра цветов
Обзор
Книги Excel управляют форматированием цветов с использованием двух моделей: более старая 56-цветная индексированная палитра в BIFF8 (классический XLS) и произвольные привязки RGB или слоты темы в OpenXML (XLSX); HotXLS предоставляет API для настройки индексов сопоставления палитры и плавного преодоления различий между этими форматами
Индексация цветов палитры
Формат BIFF8 сопоставляет цвета форматирования с записями индекса от 8 до 63; используйте интерфейс цветов книги, чтобы переопределить определения цветов по умолчанию
procedure SetColor(const AIndex: Integer; const AColor: TColor);
Если назначить пользовательское значение RGB непосредственно ячейке без обновления индекса палитры, HotXLS автоматически сопоставит его с ближайшим цветом в активной палитре книги
Расширенное сопоставление цветов RGB
IXLSWorkbook and TXLSXWorkbook expose matching ResolveIndexedColor перегрузки для интерпретации индекса без изменения книги
Вызывающий указывает исходное пространство индексов как публичное ColorIndex, BIFF icv, or OOXML indexed; результат различает токены палитры, автоматические, системные и невалидные и сообщает нормализованное значение ARGB только когда доступен конкретный цвет
Системные и автоматические токены никогда не читают текущий рабочий стол неявно; передавайте явный резолвер системных цветов, когда нужен зависящий от окружения RGB-вывод
Роль использования сохраняет специфичный для формата смысл, например то, что нулевой индекс границы BIFF означает «не задано», а не чёрный
Use NearestIndexedColor когда значение RGB нужно сопоставить с ближайшей физической записью палитры; общий кэшированный OKLab-матчер возвращает публичные и физические индексы, не меняя книгу
Use ScanIndexedColorUsage чтобы получить детерминированную опись 56 слотов до планирования изменений палитры; определения и ссылки из стилей, объектов листа, диаграмм, примечаний и условных форматов помечают затронутые слоты как заблокированные
Mutation-Free Palette Planning
Use BuildBiffPalettePlan чтобы посмотреть, как прямые RGB и вычисленные цвета тем помещаются в 56 физических слотов палитры BIFF, не меняя книгу
План сохраняет каждый индексный слот, помеченный как заблокированный, удерживает существующие точные цвета на нижнем совпадающем слоте, назначает точные цвета, пока есть ёмкость, и использует частотно-взвешенную детерминированную OKLab-кластеризацию только когда уникальные цели превышают свободные слоты
Каждая цель сообщает выбранные публичный и физический индексы, сопоставленное значение ARGB, частотный вес, квадрат перцептуального расстояния и состояние точного совпадения; сводные поля сообщают точный вес, взвешенную ошибку, максимальную ошибку, изменённые слоты и потребовалась ли квантизация
Поколение и хэш исходной палитры позволяют ApplyBiffPalettePlan отклонить устаревший или подделанный план до любых изменений слотов; успешное применение один раз перестраивает кэшированный матчер, а валидный план без изменений оставляет поколение прежним
Classic workbooks also expose BiffPaletteSavePolicy; значение по умолчанию сохраняет историческую палитру, тогда как явное значение оптимизации строит и применяет актуальный план только для вывода BIFF8 и восстанавливает исходную палитру, если сохранение не удалось или отменено
Rich RGB Color Mapping
Книги XLSX обходят ограничения палитры и допускают прямое назначение 24-битных значений RGB; ознакомьтесь с API преобразования цветов ниже
- Свойство Workbook Colors — Доступ к цветам палитры по индексу
- Обзор цветовой модели — Логика преобразования цветов для классического XLS
- Interior SetThemeColor — Настройте заливку ячейки с использованием тем Office
- ScanIndexedColorUsage method — Просмотр определений, ссылок, типов потребителей и блокировок сохранения для каждого физического слота палитры
- BuildBiffPalettePlan method — Предпросмотр детерминированного размещения true-color и квантования без изменения состояния книги
- ApplyBiffPalettePlan method — Валидация и атомарное применение текущего плана палитры на 56 слотов
- BiffPaletteSavePolicy property — Выбор сохранённой или явно оптимизированной палитры BIFF8 для классических книг
- Color model overview — Логика преобразования цветов для классического XLS
- Interior SetThemeColor — Настройка заливки ячеек с помощью тем Office