![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
Хочу сделать программу для сравнения двух экселевских файлов, т.е. программа должна открыть первый и второй файлы, просканировать их и выдать в результате в третий файл (напр, "result.xls"), то, что есть во втором, но нет в первом.
Сейчас в голове набросал примерный алгоритм работы: 1. Пользователь вводит пути к двум файлам, а так же номера столбцов (напр "А" и "В" - в первом, "С" и "D" - во втором, т.е. это - переменные) 2. программа открывает их. 3. создать копию второго файла и назвать её "result.xls" 4. Запускается цикл:
5. Открыть "result.xls" Может, что-то в этом алгоритме можно реализовать по-другому? (например, цикл) Какой компанент лучше всего здесь ипользовать (учитывая то, что я с экселем через делфи вообще никогда еще не работал)? Это сообщение отредактировал(а) Stolzen - 30.11.2006, 11:42 |
|||
|
||||
PROeXT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
Можно сделать через ADO и использовать компоненты TDataSet. В таком случае твои Excel файлы будут типа БД...
Это сообщение отредактировал(а) PROeXT - 30.11.2006, 12:04 |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
||||
|
||||
PROeXT |
|
||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
Счас поищу примерчик...
Для удобства объявим константы:
Итак, подключение к файлу Excel:
Самое главное - указать имя страницы (в моем случае это tfoms_pasp). И не забудь добавить к нему (названию) символ $. Он этого очень хочет ![]() Если все прошло нормально, то в aqExcel(TADOQuery) загружаются все данные твоего Excel файла, представленные в виде таблицы... Естественно, что операцию, описанную выше, тебе придется повторить дважды... Но, уверен, что ты уже и сам понял, что к чему ![]() Это сообщение отредактировал(а) PROeXT - 1.12.2006, 00:38 |
||||
|
|||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
2 PROeXT: Еще не совсем вкурил, проснусь, с утра на свежую голову гляну...
Может быть по этому компаненту хелп какой-нить есть? (Как он, кстати, называется, а тоя че-то наити название нигде не могу...) |
|||
|
||||
PROeXT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
В Delphi 7, например, в палитре компонентов есть вкладка... Она так и называется ADO. На ней расположены следующие компоненты:
ADOConnection - для осуществления связи с "физическим" источником данных. В твоем случае в роли такого источника данных выступают файлы Excel ADOCommand - для выполнения запросов, не возвращающих параметров. Т.е. запросов типа Insert,Delete ADOTable - Аналогия с TTable (недаром у них общий предок TDataSet) ADOQuery - Аналогия с TQuery. Если у меня вдруг появляется задача, аналогичная твоей - я использую тока его, так как люблю контролировать весь процесс... А как это еще можно сделать без запросов? Тебе нужно твой ADOTable/ADOQuery просто привязать к настроенному ADOConnection (см. пример выше), и все получится... PS. В моем примере (выше), acExcel - Это компонент TADOConnection, а aqExcel - TADOQuery ![]() Это сообщение отредактировал(а) PROeXT - 30.11.2006, 21:47 |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: нет Всего: 48 |
2 PROeXT,
Приду днем с института, обмозгую, попробую написать прогу. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |