| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Программа для сравнения xls Файлов |
| Автор: Stolzen 30.11.2006, 11:35 | ||
| Хочу сделать программу для сравнения двух экселевских файлов, т.е. программа должна открыть первый и второй файлы, просканировать их и выдать в результате в третий файл (напр, "result.xls"), то, что есть во втором, но нет в первом. Сейчас в голове набросал примерный алгоритм работы: 1. Пользователь вводит пути к двум файлам, а так же номера столбцов (напр "А" и "В" - в первом, "С" и "D" - во втором, т.е. это - переменные) 2. программа открывает их. 3. создать копию второго файла и назвать её "result.xls" 4. Запускается цикл:
5. Открыть "result.xls" Может, что-то в этом алгоритме можно реализовать по-другому? (например, цикл) Какой компанент лучше всего здесь ипользовать (учитывая то, что я с экселем через делфи вообще никогда еще не работал)? |
| Автор: PROeXT 30.11.2006, 12:03 |
| Можно сделать через ADO и использовать компоненты TDataSet. В таком случае твои Excel файлы будут типа БД... |
| Автор: PROeXT 30.11.2006, 15:57 | ||||
| Счас поищу примерчик... Для удобства объявим константы:
Итак, подключение к файлу Excel:
Самое главное - указать имя страницы (в моем случае это tfoms_pasp). И не забудь добавить к нему (названию) символ $. Он этого очень хочет Если все прошло нормально, то в aqExcel(TADOQuery) загружаются все данные твоего Excel файла, представленные в виде таблицы... Естественно, что операцию, описанную выше, тебе придется повторить дважды... Но, уверен, что ты уже и сам понял, что к чему |
| Автор: Stolzen 30.11.2006, 19:49 |
| 2 PROeXT: Еще не совсем вкурил, проснусь, с утра на свежую голову гляну... Может быть по этому компаненту хелп какой-нить есть? (Как он, кстати, называется, а тоя че-то наити название нигде не могу...) |
| Автор: PROeXT 30.11.2006, 21:43 |
| В Delphi 7, например, в палитре компонентов есть вкладка... Она так и называется ADO. На ней расположены следующие компоненты: ADOConnection - для осуществления связи с "физическим" источником данных. В твоем случае в роли такого источника данных выступают файлы Excel ADOCommand - для выполнения запросов, не возвращающих параметров. Т.е. запросов типа Insert,Delete ADOTable - Аналогия с TTable (недаром у них общий предок TDataSet) ADOQuery - Аналогия с TQuery. Если у меня вдруг появляется задача, аналогичная твоей - я использую тока его, так как люблю контролировать весь процесс... А как это еще можно сделать без запросов? Тебе нужно твой ADOTable/ADOQuery просто привязать к настроенному ADOConnection (см. пример выше), и все получится... PS. В моем примере (выше), acExcel - Это компонент TADOConnection, а aqExcel - TADOQuery |
| Автор: Stolzen 1.12.2006, 00:09 |
| 2 PROeXT, Приду днем с института, обмозгую, попробую написать прогу. |