Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2011, 06:36   #1
Al_Sha
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 15
По умолчанию Как выполнить такой поиск в EXCEL...

Здравствуйте Уважаемые!
Подскажите как реализовать поиск в файле EXCEL (см.вложение).
Задача следующая.
Необходимо выполнить поиск по ФИО (берется из Edit) и в случае нахождения (например Петров Петр Петрович) скопировать в SrtringGrid:
1. Все что находится правее ячеек Основной режим/Сверхурочно/Итого (серая заливка)- в первый SrtringGrid.
2. Все что находится ниже ячеек Наименование/дата списания/кол-во/Примечание (серая заливка)- - во второй SrtringGrid.
С открытием файла Excel проблем нет...
Проблема с поиском и выводом найденного в SrtringGrid

Заранее благодарен
Al_Sha
Вложения
Тип файла: rar 1.rar (3.3 Кб, 11 просмотров)
Al_Sha вне форума Ответить с цитированием
Старый 30.07.2011, 10:16   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Так примерно:
Код:
uses ComObj, ExcelXP;

procedure TForm1.Button1Click(Sender: TObject);
var
  XlApp, WSh, Rng : Variant;
  sR : string;
  F : string;
  C, R, I, J : Integer;
begin
  XLApp:= CreateOleObject('Excel.Application');
  XLApp.Workbooks.Open(<полный путь к файлу>\1.xls');
  WSh := XLApp.WorkBooks[1].WorkSheets[1];
  WSh.Select;

  F := Edit1.Text;
  Rng := WSh.Cells.Find(What := F, LookIn:=xlValues,
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
        MatchCase:=False, SearchFormat:=False);

  try
    Rng.Select;
    R := Rng.Row;
    Inc(R, 8);
    C := Rng.Column;
    Inc(C, 3);
    for I := 1 to 3 do begin
      Rng := WSh.Cells[R, C];
      Rng.Select;
      StringGrid1.Cells[1, I] := Rng.Value2;
      Inc(R);
    end;
    Inc(R, 3);
    Dec(C);
    for I := 1 to 4 do begin    //по строкам
      for J := 1 to 4 do begin  //по колонкам
        Rng := WSh.Cells[R, C];
        Rng.Select;
        StringGrid2.Cells[J, I] := Rng.Value2;
        Inc(C);
      end;
      Dec(C, 4);
      Inc(R);
    end;
  except
    raise;
  end;

//  XLApp.Visible := True; //если надо чтобы книга появилась, но строку ниже закомментировать
  XLApp.WorkBooks.Close;
  WSh := Unassigned;
  XLApp := Unassigned;
end;
Прик вне форума Ответить с цитированием
Старый 30.07.2011, 18:24   #3
Al_Sha
Пользователь
 
Регистрация: 14.03.2009
Сообщений: 15
По умолчанию

Спасибо.
Будем пробовать....
С уважением
Al_Sha
Al_Sha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить поиск вхождений в TStringList aquatell Общие вопросы Delphi 1 21.04.2011 17:37
Как выполнить поиск по XML файлу и добавить к нему новый узел в Delphi? LexaL Помощь студентам 0 24.12.2010 17:12
Выполнить поиск записи в форме Познающий Microsoft Office Access 6 08.06.2010 19:09
Здраствуйте! Как в Mysql выполнить фрагментированный поиск? Warlruss SQL, базы данных 0 08.10.2009 16:03
Как выполнить поиск на винте SeRhy Помощь студентам 1 02.11.2007 16:33