Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как в Excel выбрать определенные строки


Автор: ASHA 25.5.2010, 06:30
Здравствуйте, Уважаемые!
Подскажите новичку...

Как средствами Delphi из файла Excel
выбрать все строки с определенным значением.
К примеру файл Excel содержит данные
Наименование                    Количество
Яблоки красные                   5
Груши зеленые                     10
Яблоки гнилые                      5

Мне надо выбрать все строки, содержащие "Яблоки"
и показать их в StringGrid
Заранее благодарен
Alex

Автор: cyberstream 25.5.2010, 09:14
http://forum.vingrad.ru/index.php?showtopic=88607&view=findpost&p=680601

http://forum.vingrad.ru/index.php?showtopic=88607&view=findpost&p=681874

И выводи в StringGrid по условию.

Автор: Akella 25.5.2010, 15:16
Цитата(ASHA @  25.5.2010,  06:30 Найти цитируемый пост)
Как средствами Delphi из файла Excel
выбрать все строки с определенным значением.

В http://forum.vingrad.ru/forum/delphi-activex-com-corba-ole.html есть функция поиска
Код

Function TfmImpFromExcel.Find(sText:String;Var iRow:Integer;Var sCol:String;WorkSheetF:_WorkSheet):Bool;
Var
 UsedRange, Range: OLEVariant;
 t,y:Integer;//вспомогат для импорта
 FirstAddress: string;
begin //поиск
  Result:=False;
  UsedRange := WorkSheetF.Range['A1','Z5000'];
  Range := UsedRange.Find(What:=sText, LookIn := xlValues, LookAt := xlWhole,SearchDirection := xlNext);
  if not VarIsClear(Range) then begin
    try
      FirstAddress := Range.Address;
      //вычисляем номер строки из полученного адреса(абсолютные координаты)
      //он начинается после второго значка доллара
      t:=PosEx('$',FirstAddress,2);
      iRow:=StrToInt(Copy(FirstAddress,t+1,length(FirstAddress)-t));
      //вычисляем номер столбца из полученного адреса(абсолютные координаты)
      //буква начинается со второго символа
      y:=PosEx('$',FirstAddress,2);
      sCol:=Copy(FirstAddress,2,y-2);
      Result:=true;
      VarClear(Range);
      VarClear(UsedRange);
    except
      Result:=False;
    end;//try-except
  end;//if
end;

Автор: ASHA 25.5.2010, 22:12
Спасибо всем откликнувшимся.....

Alex

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)