Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2009, 23:20
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию Поиск в Excel и вывод всей строки?

Не могу нигде найти как можно найти фамилию например Иванов и вывести все данные об Иванове.
Есть строка. Фамилия, возраст, где работает, курит, пьет.
Мне надо найти Иванова и вывести в ListBox все строки.
И еще получить номер строки и все координаты строк.
Потому что потом надо поправить пьет или не пьет, курит или не курит.

E.Cells.Find('Фамилия'); Не катит. Находит только фамилию и тупо выводим мне ее, собстно нафиг мне только фамилия я и так знаю что она существет, мне надо ее координаты!!
Ответить с цитированием
  #2  
Старый 26.12.2009, 23:30
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну а почему-бы циклом по строкам, столбцам на листе не искать?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 26.12.2009, 23:51
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

То есть тем же find но искать строго диапазон и буду знать где что лежит.
То есть range(A1:A1).find('Петя'); по возрастающей.
В принципе и так мона если работать будет!!
Ответить с цитированием
  #4  
Старый 27.12.2009, 00:15
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Не, непонимаю.
Достает выводом ошибки что не найден член группы и останавливается, по циклу не ищет зараза!
Ответить с цитированием
  #5  
Старый 27.12.2009, 00:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Нет не Find, а просто значение ячейки по конкретному адресу проверяйте.
Примерно так:
Код:
if Pos('Петя',WorkSheet.Range['A1']) <> 0 then ListBox1.Items.Add(WorkSheet.Range['A1'])
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 27.12.2009 в 00:53.
Ответить с цитированием
  #6  
Старый 27.12.2009, 00:53
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

но мне поиск по маске желателен, например слово петь вводим а должно найтись петька
Ответить с цитированием
  #7  
Старый 27.12.2009, 00:56
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Можно подключить excel-евский файл в виде таблицы бд через bde, и получать оттуда данные запросами SQL.
Ответить с цитированием
  #8  
Старый 27.12.2009, 00:57
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну и найдется. Почему нет?
Функция Pos() возвращает позицию вхождения S1 в S2
т.е. "Петь" будет найден в "послухай меня Петька хоть раз"
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 27.12.2009, 00:59
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Сообщение от Asinkrit
Можно подключить excel-евский файл в виде таблицы бд через bde, и получать оттуда данные запросами SQL.
Можно и через SQL, но он через OLE это делает.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #10  
Старый 27.12.2009, 12:36
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Нет не Find, а просто значение ячейки по конкретному адресу проверяйте.
Примерно так:
Код:
if Pos('Петя',WorkSheet.Range['A1']) <> 0 then ListBox1.Items.Add(WorkSheet.Range['A1'])
Ну что то сдвинулось с места, все заработало.
Вот только как чувствительность к заглавным убрать.
А то фамилию с маленькой буквы не ищет.
Ответить с цитированием
  #11  
Старый 27.12.2009, 14:02
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Блин скачал какую то книгу идиотскую совершенно, немогу даже по ней понять как записать например данные в exel.Cells[1,8];
exel.cells[1,8] := '123' не прокатывает.
Мне надо конкретно по координатам записывать.
Причем при закрытии программы эксель спрашивать сохранить или нет файл.
То есть изменения какие то есть но их не видно. Или сохраняется непонятно куда
Ответить с цитированием
  #12  
Старый 27.12.2009, 14:04
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

разобрался!
Ответить с цитированием
  #13  
Старый 27.12.2009, 19:22
ColorDb ColorDb вне форума
Новичок
 
Регистрация: 27.01.2009
Сообщения: 67
Репутация: 10
По умолчанию

Ура программа закончена только совершенно немогу понять как сделать так чтоб поиск был любыми буквами заглавными или нет. Чувствительность к регистру убрать?? Тоже какие то свойства Exel есть...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter