|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Поиск текста в Excel
Никак не могу понять как сделать поиск в Excel? Нужно приаттачиться к уже открытому документу и там уже искать. но какого-то у меня постоянно возникает Exeption, что запрос отклонён. Кучу кода нарыл и всё везде разное. Про то как вставить, скопировать - полно, а вменяемого кода про поиск - нигде.
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#2
|
||||
|
||||
Вариант с копированием активной области и поиске в ней рассматривал?
Если нужно, завтра могу дать вам пример. Смысл такой, берется вся область с данными (пустые столбцы и строки вокруг области данных отсекаются), передается в двумерный массив OleVariant, оттуда приводится к нужному типу, ну и делайте чо хотите с этими данными. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 08.08.2012 в 20:49. |
#3
|
||||
|
||||
Боюсь, что ситуация намного хуже - поиск должен происходить именно в Excel. Т.е. Чтобы переходило на найденную ячейку.
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#4
|
||||
|
||||
Ну тогда макросы.
Для справки, через Ole объект тоже можно выделить ячейку, да короче все что хотите можно. Тем паче, что этот товарищ выдает диапазон. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject); begin ExcelApplication1.ConnectKind:=ckRunningInstance; ExcelApplication1.Connect; ExcelApplication1.Visible[LOCALE_USER_DEFAULT]:=True; ExcelWorkbook1.ConnectKind:=ckRunningInstance; ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open('E:\Test\111.xls', EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT)); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets[1] as _WorkSheet); ExcelWorksheet1.Cells.Find('4073', ExcelApplication1.ActiveCell, xlFormulas, xlPart, xlByRows, xlNext, False, EmptyParam, False).Activate; end; |
#6
|
||||
|
||||
Как объяснил, так и ответили
Есть открытый документ в Экселе. К нему надо присоединиться. И потом искать. Расположение у него - неизвестно, поскольку идет работа через сетевое хранилище и сервер каждый раз выгружает файлы в разные папки. В заголовке - только имя файла. Вот как подконнектиться именно к открытому документу - вот вопрос. Хорошо написанная программа не требует документации ICQ 9-184-668. |
#7
|
||||
|
||||
Цитата:
Итак. Нам известно имя файла и что этот файл открыт сейчас в Excel-е, но неизвестен путь к этому файлу.
|
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Thrasher (13.08.2012)
|
#8
|
||||
|
||||
Бинго!
Совсем голова перестала варить.. Сработало) Хорошо написанная программа не требует документации ICQ 9-184-668. |
#9
|
|||
|
|||
Здравствуйте. А как присоединиться к еще не сохраненному документу? Тоесть суть в чем, ABBYY Screenshot Reader делает скрин области на экране, распознает там текст и передает в Exel. Вот мне нужно как-то присоединиться из своей программы и выбрать там нужные данные. Но документ то не сохранен на диск. В заголовке Exel появляется наподобие tmpb9691, только знаки после tmp разные каждый раз, но в Списке открытых файлов по такому имени ничего не находит.
Возможно както прочитать из уже запущенного Exel, если документ еще не был сохранен на диск? |
#10
|
|||
|
|||
соединился...
Uses ComObj; var Xl:Variant; .... try XL:=GetActiveOleObject('Excel.Application'); ....... XL.visible:=true; Except |