Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Программно найти координаты ячейки с текстом


Автор: Nowichok 5.7.2009, 20:08
Нужно найти координаты ячейки, содержащей какой-то текст (а точнее номер строки у этой ячейки). Даже известен столбец, в котором искать. Можно найти просто самую первую ячейку (даже если таких несколько). Как это сделать программно из Delphi, но чтобы искал сам EXCEL. А то перебор каждой ячейки из delphi занимает ну очень много времени ?

Нашёл в нэте про какую-то функцию 
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Описание в гугле толком не нашёл. На компе help по Excel не открывается (Vista (( )

Может кто помочь ?

Автор: 4EVERCooL 6.7.2009, 03:21
Цитата

Как это сделать программно из Delphi, но чтобы искал сам EXCEL.


Интересное требование  smile . Цикл по полю средствами Делфи не такой уж и медленный на самом деле. Как происходит соединение с экселем?

Автор: Nowichok 6.7.2009, 07:06
Код

   if not VarIsEmpty(Excel) then
    Excel:=null;
   try
    Excel:=CreateOleObject('Excel.Application');
    Excel.Visible:=False;

    Excel.ErrorCheckingOptions.BackgroundChecking := False; 
    Excel.ErrorCheckingOptions.NumberAsText := False;
    Excel.ErrorCheckingOptions.InconsistentFormula := False;

    Excel.ScreenUpdating := FALSE;

   except
    ShowMessage('Не удалось связаться с Excel');
    Form_Reports.Close;
    Exit;
   end;


Во время программы делается около 1000 обращений к EXcel, в каждом обращении происходит перебор около 700-800 ячеек. Многовато....

Автор: Romikgy 6.7.2009, 09:35
а не проще закинуть все данные в датасет ? и с ним работать ?

Автор: Nowichok 6.7.2009, 09:46
Хм, да, было бы удобнее. Что-то не подумал.
Однако переделывать все строки кода обращения к Excel - много времени.
А проект надо сдавать, может и сегодня smile
Может всё-таки есть способ сделать поиск силами Excel ?

Автор: Romikgy 6.7.2009, 10:08
макрос заюзать имхо

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