|
Вопрос # 1 832/ вопрос решён / |
|
Приветствую, уважаемые эксперты!
Прошу Вас помочь мне в решении данного вопроса: мне необходимо выгружать данные из БД в Excel. У меня уже реализована выгрузка из БД в отдельный excel-файл. Но мне необходимо выгружать данные в Excel, который должен находится на самой дельфовой форме. При этом необходимо иметь возможность работы с этим excel-ем как с обычным excel -файлом, но чтобы эти действия могли отслеживаться из дельфи.
 |
Вопрос задала: 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 (статус: Посетитель), 21 августа 2008, 18:38 [#4]:
Да мне необходимо выгрузить данные из БД в Excel, который у меня находится в OleContainer-е на форме дельфи. Затем пользователь в этом контейнере в Excel-e проводит изменения и нажимает кнопку "сохранить". После этого мне надо считать данные из OleContainer-а и уже на их основании я создаю скрипты и записываю в базу изменения. Все это я уже сделала, но не в OleContainer-е, а сохраняя данные просто в файл Excel-я, и потом загружая измененный пользователями файл обратно в базу. Но заказчик просит чтоб все это было именно внутри дельфовой формы.
|
|
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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|