TXLSXDataValidations предоставляет API этой функции XLSX, сохраняя исходные идентификаторы TXLSXWorksheet.DataValidations Объявления TXLSXDataValidation
Объявления
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1: WideString): Integer;
function Add(const ARange: WideString; AType: TXLSXDataValidationType; AOp: TXLSXDvOperator; const AFormula1, AFormula2: WideString): Integer;
function AddList(const ARange, AItems: WideString): Integer;
procedure TXLSXDataValidation.SetPrompt(const ATitle, AText: WideString);
procedure TXLSXDataValidation.SetError(const ATitle, AText: WideString; AStyle: TXLSXDvErrorStyle = xlsxDvErrStop);
Объявления
| Range and ValidationType | Основные члены |
| Op, Formula1 and Formula2 | Основные члены |
| AllowBlank | Используйте свойства и методы для создания, чтения и изменения листов, диапазонов и объектов |
| PromptTitle and Prompt | Пример |
| ErrorTitle, ErrorMessage and ErrorStyle | Пример |
| ShowDropDown | См. также |
| ImeMode | См. также |
Целевые диапазоны правил
Начиная с 2.384.76, цели в пределах листа принимают одиночные ячейки, прямоугольники ячеек, целые столбцы вроде $B:$D и целые строки вроде $5:$8; развёрнутые границы нормализуются, а пробелы, табуляции или переводы строк разделяют несколько областей
Абсолютные и смешанные ссылки сохраняют исходный текст Range; сопоставление использует строки с 1 по 1048576 и столбцы с A по XFD, пропускает некорректные или выходящие за сетку области и держит корректные соседние области активными, не поднимая нового исключения в сеттере
Ссылки с именем листа и внешние ссылки не являются целевыми областями; каждое правило принадлежит своему листу, а знаки доллара должны стоять в обычных позициях ссылки A1
Поиск правил, удаление ячеек и диапазонов, валидация одиночной ячейки и аудиты валидации сохранённых ячеек используют одну и ту же геометрию целей; разбор целей не меняет поддержку формул источников списков
Начиная с 2.384.77, правки строк и столбцов также преобразуют целые оси правил в пределах сетки листа; протяжённость, накрывающая каждую строку или столбец, остаётся полной при правке этой оси, а правки другой оси сдвигают, сужают или удаляют цель
Клонирование диапазонов сохраняет контракт полного покрытия: каждая целевая область должна помещаться внутрь исходного прямоугольника до копирования правила, и одно лишь частичное пересечение правило не копирует; цели на целые оси можно клонировать из источника размером с целую строку или целый столбец, пока приёмник остаётся в пределах сетки
Валидационные цели на целые оси при правках остаются одним правилом, причём формула корректируется от его первой уцелевшей якорной ячейки; это не расширяет существующую поддержку интероперабельности ODS для пользовательских логических значений и скалярных формул
TXLSXWorksheet
var Index: Integer;
begin
Index := Sheet.DataValidations.AddList('D2:D100', 'New,Active,Closed');
Sheet.DataValidations[Index].SetPrompt('Status', 'Select a permitted status');
Sheet.DataValidations[Index].SetError('Invalid status', 'Choose a value from the list');
end;Область действия ODS
Экспорт ODS выводит корректный базовый адрес первой ячейки из первой поддерживаемой целевой области, включая целые строки и столбцы; некорректные начальные области базовыми адресами не становятся
Экспорт пользовательской логической валидации по-прежнему не поддерживается, а скалярные формулы порогов сохраняют существующие ограничения синтаксиса формул; исправление целевых диапазонов не устанавливает внешнюю интероперабельность для относительных валидационных формул
TXLSXWorksheet