-
Здравствуйте. Подскажите пожалуйста как из Delphi на листе Excel включить автофильтр. То есть не отфильтровать данные по критерию, а сделать как если бы мы в Excel'e Данные->Фильтр->Автофильтр. Т.е. нужно просто добиться, чтобы появились combobox'ы со стандартным списком вариантов (Все, Первые 10, Условие ..., итд). Заставить работать ExcelWorksheet1.Range[1,1].AutoFilter(1,'','','','true') не получается. Вылетает с ошибкой OLE.
-
а ExcelWorksheet1.Cells.AutoFilter; работает? И, кстати, как Вы используете эксель? ExcelWorksheet1 - это компонент с закладки Servers?
-
> а > ExcelWorksheet1.Cells.AutoFilter; > работает? И, кстати, как Вы используете эксель? ExcelWorksheet1 > - это компонент с закладки Servers?
Неработает. Пишет "Метод AutoFilter из класса Range завершен неверно". Код
var
XL,
Vals: Variant;
Rows, Cells: integer;
begin
Screen.Cursor := crHourGlass;
Rows := 10;
Cells := 5;
Vals := VarArrayCreate([0, Rows, 0, Cells], varVariant);
try
XL := CreateOleObject('Excel.Application');
except
raise Exception.Create('Ошибка открытия Excel');
end;
XL.Application.EnableEvents := False;
XL.WorkBooks.Add('C:\test.xls');
XL.Range[XL.Cells[2,1], XL.Cells[Rows, Cells]].Value := 2;
XL.Visible := True;
XL.Cells.AutoFilter(1,'','','','true');
XL.ActiveWorkBook.SaveAs('c:\test2.xls');
-
Всем спасибо! Разобрался. Пример вызова функции: AutoFilter(3,'>=8',xlAnd,EmptyParam,True);
|