Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 832

/ вопрос решён /

Приветствую, уважаемые эксперты!
Прошу Вас помочь мне в решении данного вопроса: мне необходимо выгружать данные из БД в Excel. У меня уже реализована выгрузка из БД в отдельный excel-файл. Но мне необходимо выгружать данные в Excel, который должен находится на самой дельфовой форме. При этом необходимо иметь возможность работы с этим excel-ем как с обычным excel -файлом, но чтобы эти действия могли отслеживаться из дельфи.

vea Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задала: vea (статус: Посетитель)
Вопрос отправлен: 21 августа 2008, 01:38
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Мережников Андрей

Здравствуйте, vea!
Вот ссылки по TOleContainer:http://ftf.grsu.by/UchProc/konspekt/com/ch06,
http://www.cyberguru.ru/programming/delphi/delphi-components-part3-page2.html,
http://pcfaq.biz/index.php/option/content/task/view/id/31. И переставьте местами строки Olecontainer.enabled и OleContainer.CreateFroFile;
P.s. кучу ссылок можно найти в Google

Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 21 августа 2008, 20:20
Оценка за ответ: 5

Комментарий к оценке: Спасибо Вам большое! Буду изучать.

Ответ #2. Отвечает эксперт: Шичко Игорь

Здравствуйте, vea!
Для того чтобы можно было редактировать файл непосредственно из OleContainer логично использовать
OleContainer1.CreateLinkToFile(File_Schfk.FileName, False); // связь с объектом
Для создания нового файла используется:
OleContainer1.InsertObjectDialog;

Некоторые статьи:
http://www.mgopu.ru/PVU/2.1/Delphi/les22.html
http://it.kgsu.ru/DelCOM/com_0022.html

Ответ отправил: Шичко Игорь (статус: 9-ый класс)
Время отправки: 22 августа 2008, 08:00
Оценка за ответ: 5

Комментарий к оценке: Спасибо Вам большое! Буду изучать.

Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 21 августа 2008, 18:54; участников в обсуждении: 4.
Вадим К

Вадим К (статус: Академик), 21 августа 2008, 02:02 [#1]:

что имеется ввиду под выражением "Но мне необходимо выгружать данные в Excel, который должен находится на самой дельфовой форме."?
Он у Вас как OLE объект на форме или Вы даже не решили, как его туда вывести?
Последнее предложение тоже не блещит ясностью.
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 21 августа 2008, 05:51 [#2]:

Вы хотите отслеживать изменения, которые произвел пользователь в Excel файле для того, чтобы внести их потом в БД?
Шичко Игорь

Шичко Игорь (статус: 9-ый класс), 21 августа 2008, 07:55 [#3]:

Сформулируйте более четко задачу: что должен иметь возможность делать пользователь по шагам. Непонятно что и где должно меняться и где это должно отслеживаться.
vea

vea (статус: Посетитель), 21 августа 2008, 18:38 [#4]:

Да мне необходимо выгрузить данные из БД в Excel, который у меня находится в OleContainer-е на форме дельфи. Затем пользователь в этом контейнере в Excel-e проводит изменения и нажимает кнопку "сохранить". После этого мне надо считать данные из OleContainer-а и уже на их основании я создаю скрипты и записываю в базу изменения. Все это я уже сделала, но не в OleContainer-е, а сохраняя данные просто в файл Excel-я, и потом загружая измененный пользователями файл обратно в базу. Но заказчик просит чтоб все это было именно внутри дельфовой формы.
vea

vea (статус: Посетитель), 21 августа 2008, 18:54 [#5]:

С файлом Excel до этого я работала через
E:=CreateOleObject('Excel.Application');
И все прекрасно создавалось, записывалось, считывалось и сохранялось.

А теперь я вроде бы могу открыть уже какой либо существующий файл
через
if OpenDialog1.Execute then
begin
olecontainer1.Enabled:=True;
oleContainer1.CreateObjectFromFile(OpenDialog1.FileName,False);
oleContainer1.setFocus;
end;

а вот как с ним (этим Excel-ем) в дальнейшем работать не совсем понятно.
К тому же после открытия Excel из контейнера, сначала он ругается на то что вызов был отклонен, а затем хоть и открывается, но как то криво и после закрытия саомго Excel окно контейнера остается каким то диагонально-полосатым. То ли вызов у меня не правильно написан? то ли опции у меня еще не заданы какие-то?
И так я как то не нашла, как не открывать уже существующий файл Excel, а создавать самой и как сохранять изменения обратно в файл?
Может у кого нибудь есть ссылки на статьи где все это поподробнее с примерами описано. Буду очень Вам признательна.

31 января 2011, 19:31: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:30
Выполнено за 0.03 сек.