Конференция "Corba" » Автофильтр в Excel [Delphi, Windows]
 
  • vs_on (14.02.07 14:22) [0]
    Здравствуйте.
    Подскажите пожалуйста как из Delphi на листе Excel включить автофильтр.

    То есть не отфильтровать данные по критерию, а сделать как если  бы мы в Excel'e Данные->Фильтр->Автофильтр.

    Т.е. нужно просто добиться, чтобы появились combobox'ы со стандартным списком вариантов (Все, Первые 10, Условие ..., итд).

    Заставить работать
    ExcelWorksheet1.Range[1,1].AutoFilter(1,'','','','true')


    не получается. Вылетает с ошибкой OLE.
  • umbra © (14.02.07 15:01) [1]
    а
    ExcelWorksheet1.Cells.AutoFilter;


    работает? И, кстати, как Вы используете эксель? ExcelWorksheet1 - это компонент с закладки Servers?
  • vs_on (14.02.07 15:20) [2]

    > а
    > 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');

  • vs_on (14.02.07 16:42) [3]
    Всем спасибо! Разобрался.
    Пример вызова функции:
    AutoFilter(3,'>=8',xlAnd,EmptyParam,True);
 
Конференция "Corba" » Автофильтр в Excel [Delphi, Windows]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]