Задаёт диапазон классического автофильтра XLS и применяет критерий для поля за один вызов
Синтаксис
procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;
Примечания
Строковая перегрузка принимает диапазон в стиле A1, например A1:C5. Числовая перегрузка использует строки и столбцы с отсчётом от 1. Поле (Field) тоже с отсчётом от 1 в рамках диапазона автофильтра
ApplyAutoFilter заменяет любой существующий диапазон автофильтра на уровне листа указанным диапазоном, затем записывает те же записи критериев полей BIFF8, что используются в IXLSRange.Autofilter
Текстовый критерий, который начинается с оператора сравнения (>=, <=, <>, >, < или =) за которым следует число, например '>=100' или '=2.5', сохраняется как числовое условие и потому совпадает с числовыми ячейками так же, как в Excel. Число записывайте с точкой в качестве десятичного разделителя. Любой другой текст, включая голое значение вроде '100', сохраняется как текстовое условие
Используйте TXLSWorksheet.AutoFilterColumns для просмотра хранимых критериев полей после применения или считывания классического автофильтра XLS
Пример
Workbook := TXLSWorkbook.Create;
try
Sheet := Workbook.Sheets[1];
Sheet.ApplyAutoFilter('A1:C5', 2, '>=100');
Workbook.SaveAs('filtered.xls', xlExcel97);
finally
Workbook.Free;
end;
См. также