Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Экспорт данных (желательно в Excel)  (Прочитано 16730 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DanZer
Гость
« : 05-03-2005 06:09 » 

Имеется база данных, написанная на Visual FoxPro 5. Фирма-разработчик сдохла, мне переучиваться как-то не с руки (тем более, что есть Delphi Отлично) Летом накатал программку (в чем немало помогли данные здесь советы https://forum.shelek.ru/index.php/topic,4269.msg79998.html), которая работает совместно с имеющейся и берет информацию в ее базе. Вывод в DBGrid, фильтр и все такое... Короче - на конкурс красоты не выставишь, но работает. Теперь понадобилось сохранение выдаваемой информации в файл, в идеале - экспорт в Excel. Собсно, вопрос - как это можно сделать с минимальными усилиями и стандартными средствами Delphi 6?
Записан
Alf
Гость
« Ответ #1 : 05-03-2005 07:21 » 

С минимальными усилиями это делается с помощью OLE Automation.

Вот первая попавшаяся статья: http://delphiworld.by.ru/base/delphi_and_excel_ole_automation.html?extract=1110007254

Вроде бы ошибок нет, должно работать.
Записан
DanZer
Гость
« Ответ #2 : 05-03-2005 09:56 » 

Спасибо, но перед тем, как передавать что-то или сохранять, нужно, чтобы эти данные имелись. А как их можно вытащить из цепочки ADOConnection->ADODataSet->DBGrid?

PS Вроде нашел: http://delphiworld.by.ru/base/ado_in_delphi.html Спасибо за ссылку Улыбаюсь Но, если еще какие советы по теме будут - тоже приму с благодарностью.
« Последнее редактирование: 05-03-2005 10:04 от DanZer » Записан
Alf
Гость
« Ответ #3 : 05-03-2005 10:44 » 

Тогда пардон. Из первого поста вроде бы следует, что все уже сделано, включая вывод в DBGrid. То есть данные готовы, остается только выгрузит в Excel.

Так как же все обстоит на самом деле, что сделано и что осталось? Желательно подробнее, чтобы тем, кто пытается помочь, не додумывать самим недосказанное.
Записан
DanZer
Гость
« Ответ #4 : 05-03-2005 13:18 » 

Собственно, дела обстоят так: 
1. Данные отображаются с помощью цепочки ADOConnection->ADODataSet->DBGrid.
2. Проходя эту цепочку фильтруются с помощью обработчика OnFilterEvent в ADODataSet.
3. DBGrid берет их для отображения именно из ADODataSet, причем уже в готовом, отфильтрованном, отсортированном и обработанном виде, не внося никаких изменений.

Так что данные-то готовы, но я могу лишь выводить их на экран для просмотра, но не сохранять куда-либо для вставки в отчеты и/или распечатки. DBGrid свойства Cells не имеет, так что как вытащить данные из базы для сохранения в файл/передачи по OLE - не знаю. Да и, по идее, их надо напрямую с ADODataSet снимать, нет?

В принципе, меня интересует задача в общем виде: как получить из объекта TDataSet содержащиеся в нем записи. Подойдут и советы по схожим темам, скажем, получение данных из таблицы через BDE DataSource  - а дальше я уже по аналогии.

Пока самое близкое, что я нашел - DataSetPageProducer для выдачи данных в html. Но не совсем то:
а) С ним еще надо разбираться - может это и совсем не то, что я понял из описания.
б) Даже если и то, слишком уж извращенный метод получается - экспорт в html, обратный импорт...
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #5 : 07-03-2005 15:42 » 

о, господи...  а чем не устраивает Next в купе с for i := 0 to Fields.Count - 1 do a := Fields .Value?
Записан

DanZer
Гость
« Ответ #6 : 07-03-2005 21:52 » 

Чем не устраивает? Гм, наверное, тем, что не знал я такого способа  Вот такой я вот В справке и примерах нашел почему-то только вывод в DBGridы, DBEditы и иже с ними.

Спасибо за помощь.
Записан
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #7 : 07-03-2005 22:17 » 

Улыбаюсь
Записан

krulik
Гость
« Ответ #8 : 18-03-2005 16:33 » 

Загляни на эту страницу там децл есть по твоему вопросу   Ха-ха-ха http://www.kornjakov.ru.  Ха-ха-ха А вообще самый надежный способ работы с екселем это записать макрос в самом екселе, а потом путем несложных операций перевести полученный код в делфу (по крайней мере я так делаю). Также загляни в архив там часть материалов которые я накопал в инете. Если че то ...

[attachment удален администратором]
Записан
DanZer
Гость
« Ответ #9 : 19-03-2005 00:04 » 

Спасибо, в принципе данной выше информации уже хватило (тем более, что я архив delphiworld скачал для более внимательного ознакомления), уже все работает. Но, тем не менее - спасибо за помощь.
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 14-04-2005 01:42 » 

Самое простое - через FastReport.
Строиш отчет как тебе надо и делаеш экспорт. v3 поддерживает HTML, Excel, RTF, TIFF, BMP и PDF.
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines