Справочник HotXLS: Классы TXLSXConditionalFormat и TXLSXConditionalFormats

предоставляет API этой функции XLSX, сохраняя исходные идентификаторы

TXLSXConditionalFormats предоставляет API этой функции XLSX, сохраняя исходные идентификаторы TXLSXWorksheet.ConditionalFormats Объявления

Объявления

function Add(const ARange: WideString; AOp: TXLSXCfOperator; const AFormula1: WideString): Integer;
function AddDataBar(const ARange: WideString; AColor: LongWord; AMinKind: TXLSCfValueKind; const AMinValue: WideString; AMaxKind: TXLSCfValueKind; const AMaxValue: WideString): Integer;
function AddColorScale2(...): Integer;
function AddColorScale3(...): Integer;
function AddIconSet(const ARange: WideString; ASetType: TXLSIconSetType): Integer;
function AddExpression(const ARange, AFormula: WideString): Integer;
function AddTextRule(const ARange: WideString; AKind: TXLSCfKind; const AText: WideString): Integer;
function AddTop10(const ARange: WideString; ARank: Integer; ABottom, APercent: Boolean): Integer;
function AddAboveAverage(const ARange: WideString; AAbove: Boolean): Integer;
function AddSimpleRule(const ARange: WideString; AKind: TXLSCfKind): Integer;

Объявления

Range, Op, Formula1 and Formula2Основные члены
StyleИспользуйте свойства и методы для создания, чтения и изменения листов, диапазонов и объектов
DataBar, ColorScale and IconSetИспользуйте свойства и методы для создания, чтения и изменения листов, диапазонов и объектов
Priority and StopIfTrueПример
Text, Rank, Percent, Bottom and AboveAverageСм. также
TimePeriodСм. также

Целевые диапазоны правил

Начиная с 2.384.76, цели в пределах листа принимают одиночные ячейки, прямоугольники ячеек, целые столбцы вроде $B:$D и целые строки вроде $5:$8; развёрнутые границы нормализуются, а пробелы, табуляции или переводы строк разделяют несколько областей
Абсолютные и смешанные ссылки сохраняют исходный текст Range; сопоставление использует строки с 1 по 1048576 и столбцы с A по XFD, пропускает некорректные или выходящие за сетку области и держит корректные соседние области активными, не поднимая нового исключения в сеттере
Ссылки с именем листа и внешние ссылки не являются целевыми областями; каждое правило принадлежит своему листу, а знаки доллара должны стоять в обычных позициях ссылки A1
Поиск правил, удаление ячеек и диапазонов и вычислитель условного форматирования используют одну и ту же геометрию целей; агрегатные правила считают перекрывающиеся области один раз и обходят только сохранённые значения ячеек, даже когда цель накрывает всю сетку
Начиная с 2.384.77, правки строк и столбцов также преобразуют целые оси правил в пределах сетки листа; протяжённость, накрывающая каждую строку или столбец, остаётся полной при правке этой оси, а правки другой оси сдвигают, сужают или удаляют цель
Клонирование диапазонов сохраняет контракт полного покрытия: каждая целевая область должна помещаться внутрь исходного прямоугольника до копирования правила, и одно лишь частичное пересечение правило не копирует; цели на целые оси можно клонировать из источника размером с целую строку или целый столбец, пока приёмник остаётся в пределах сетки
Внутренние правки сохраняют домены относительных выражений и формул сравнения ячеек, разделяя цель при необходимости и сливая части, остающиеся эквивалентными на одном общем якоре; библиотека не воспроизводит добавочное форматирование конца сетки, которое Excel может неявно скопировать при вставке

TXLSXWorksheet

var Index: Integer;
begin
  Index := Sheet.ConditionalFormats.AddExpression('B2:B100', 'B2<0');
  Sheet.ConditionalFormats[Index].Style.SetFillBgColor($0000FF);
  Sheet.ConditionalFormats.AddColorScale3('C2:C100', $0000FF, $00FFFF, $00FF00, cfvMinOfRange, '', cfvPercentile, '50', cfvMaxOfRange, '');
end;

Условные числовые форматы

Style.SetNumFormatId задаёт дифференциальный числовой формат независимо от базового формата целевой ячейки; ID 0 — явный сброс на General, а отсутствие переопределения оставляет базовый формат в силе
Пользовательские ID форматов — это 164 + Index, где Index — идущий с нуля результат Workbook.NumberFormats.Add; сохранение XLSX сохраняет форматы, на которые ссылаются только условные правила, и обновляет ID, когда пул форматов уплотняется

Условные стили ODS

Импорт и экспорт ODS сохраняют дифференциальные стили правил сравнения ячеек и выражений: цвет, имя, размер, полужирность, курсив и подчёркивание шрифта, сплошной или прозрачный фон и числовые форматы, поддерживаемые конвертером числовых форматов ODS
Явный чёрный цвет, нормальная насыщенность шрифта, отсутствие подчёркивания и прозрачный фон остаются переопределениями; атрибуты, которых нет в правиле, продолжают использовать базовое форматирование целевой ячейки
Цвета темы и индексированные экспортируются как разрешённые цвета: внешне они выглядят так же, но их принадлежность к теме или палитре через ODS не проходит; метаданные шрифтовой схемы не имеют отображения в ODS
ODS использует обычное одинарное или двойное подчёркивание вместо бухгалтерского, а узорные заливки представляются цветом фона; переопределения границ и выравнивания TXLSDxfStyle не раскрывает
Проверенный импорт ODS в Excel 16 сохраняет цвета выделения, явные сбросы, подчёркивание и процентный формат, но игнорирует условные семейство и размер шрифта; LibreOffice 26.2.5.2 читает эти свойства именованных стилей, и его конвертированный XLSX сохраняет их в Excel
Начиная с 2.384.75, правила сравнения ячеек и выражений ODS используют компактные повторяющиеся пустые носители на полных целях, включая целые строки, целые столбцы и широкие диапазоны; перекрывающиеся правила сохраняют свой порядок, а заполнение только носителями не создаёт сохранённых ячеек при повторном открытии в HotXLS

TXLSXWorksheet