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