يضبط نطاق AutoFilter الكلاسيكي لـ 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 أي نطاق AutoFilter موجود على مستوى ورقة العمل بالنطاق المعطى، ثم يكتب سجلات معايير حقول BIFF8 نفسها التي يستخدمها IXLSRange.Autofilter
معيار النص الذي يبدأ بمعامل مقارنة (>= أو <= أو <> أو > أو < أو =) يليه رقم، مثل '>=100' أو '=2.5'، يُخزَّن كشرط رقمي، فيطابق الخلايا الرقمية كما يحدث في Excel. اكتب الرقم بالنقطة كفاصل عشري. وأي نص آخر، بما في ذلك قيمة مجردة مثل '100'، يُخزَّن كشرط نصي
استخدم TXLSWorksheet.AutoFilterColumns.Find(Field) لفحص معايير كل حقل المخزنة بعد تطبيق أو قراءة AutoFilter الكلاسيكي في XLS
مثال
Workbook := TXLSWorkbook.Create;
try
Sheet := Workbook.Sheets[1];
Sheet.ApplyAutoFilter('A1:C5', 2, '>=100');
Workbook.SaveAs('filtered.xls', xlExcel97);
finally
Workbook.Free;
end;
انظر أيضاً