deks

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору neznayka3 Не могу щас попробовать на компе (на маке есть MS Office, но нету установленных ODBC драйверов, на Win vm нету MS Office). В общем, там тема такая: В Экселе выбираем пункт меню "Данные - Получить внешние данные". Там создаем новый или подсовываем существующий connection к источнику данных. Далее ЭКсель самостоятельно и довольно быстро "затягивает" данные внутрь и помещает их на лист. К данным можно прикрепить итоги. Естественно, все то, что делает Эксель при манипуляциях через UI, можно сделать через COM-объекты из кода. Для того, чтобы понять этот код, мы делаем "Запись макроса". Начинаем запись, делаем нужные нам действия через UI и после окончания всех действий получаем код на VisualBasic, который нужные действия воспроизводит. Потом этот код на VisualBasic несложно прикрутить к Delphi для работы с COM-объектами экселя. Но да, для работы этой схемы потребуется установленный MS Excel на компе. Впрочем, это самый быстрый способ: через COM идет только команда на загрузку шаблона и обновление данных - а дальше все делается экселем и быстро, "пачкой" загружая данные. При изменении бд/хоста можно просто поправить нужный connection. При смене запроса щас с ходу не помню чего там происходит, но, по моему, запрос определяется через MS Query, и наверняка можно тоже тюнинговать запрос. Как именно это сделать легко нагуглить в MSDN. Впрочем, тут проблемы со сменой количества полей, их именах и тп - скорее всего проще будет сделать новый connection/шаблон. По поводу FlexCel, у него есть приблуда APIMate, при открытии в которой готового excel файла формируется код для "воссоздания" этого файла. Своеобразный DDL для xls/xlsx. ТАк вот - в этой приблуде можно попробовать открыть excel-файл с подключенными внешними источниками данных. Может FlexCel их и поддерживает! | Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 19:12 19-06-2013 | Исправлено: deks, 19:13 19-06-2013 |
|