HotXLS 文档

ApplyAutoFilter 方法

设置 a classic XLS AutoFilter range and applies a per-field criterion in one call

语法

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:C5 这类 A1 风格的范围;数字重载使用从 1 开始的行号和列号,Field 在 AutoFilter 范围内同样从 1 开始
ApplyAutoFilter 会用提供的范围替换既有的工作表级 AutoFilter 范围,然后写出与 IXLSRange.Autofilter 相同的那批 BIFF8 字段条件记录
以比较运算符(>=、<=、<>、>、< 或 =)开头、后面跟数字的文本条件,比如 '>=100' 或 '=2.5',会存成数字条件,匹配数值单元格的行为与 Excel 一致。数字一律用句点作小数点来写。其他任何文本——包括 '100' 这样的纯值——都会存成文本条件
Use TXLSWorksheet.AutoFilterColumns.Find(Field) 来查看应用或读取经典 XLS 自动筛选之后存储的逐字段条件

示例

Workbook := TXLSWorkbook.Create;
try
  Sheet := Workbook.Sheets[1];
  Sheet.ApplyAutoFilter('A1:C5', 2, '>=100');
  Workbook.SaveAs('filtered.xls', xlExcel97);
finally
  Workbook.Free;
end;

See Also