Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 17:34   #1
Symple me
Пользователь
 
Аватар для Symple me
 
Регистрация: 09.10.2012
Сообщений: 47
Вопрос Builder+Excel

Здравствуйте! Допускаю, что моя идея непонятна и утопична, но все-таки спрошу.
Скажите, пожалуйста, возможно ли написать такое приложение Builder, использующее данные из книги Excel, чтобы можно было запускать его из этой же книги с минимальным стрессом для пользователя?
Просто я открываю книгу Excel, нажимаю на кнопку. Запускается программа.
Код:
Application=CreateOleObject("Excel.Application");   
Books = Application.OlePropertyGet("Workbooks");
WideString path1 = ExtractFilePath( ::Application->ExeName ) + "Data.xls";
Book=Books.OleFunction("Open",path1);   
//всякие манипуляции с данными
Application.OleProcedure("Quit");
После выполнения строки
Код:
Book=Books.OleFunction("Open",path1);
открывается еще раз та же книга, в ней кое-что меняется. После строки
Код:
Application.OleProcedure("Quit")
excel спрашивает, сохранить ли изменения. Если нажать нет, то все, что программа посчитала, не сохраняется. Если нажать да, то в этой книге изменения сохранятся. Она закроется. Но останется открытой та же книга, но без изменений. Это неудобно.
Пробовала закомментировать строку
Код:
Application.OleProcedure("Quit");
Но так тоже неправильно. Так при каждом запуске накапливаются процессы EXCEL.EXE даже если все окна excel закрыты, потому что программа создает процесс и не убивает его.
Можно ли что-то придумать? Например, как-нибудь считать данные из книги, не открывая ее программно?
There are 10 types of people: those who understand binary and those who don't.
Symple me вне форума Ответить с цитированием
Старый 28.03.2013, 16:59   #2
Symple me
Пользователь
 
Аватар для Symple me
 
Регистрация: 09.10.2012
Сообщений: 47
По умолчанию

Разобралась) Нужно вместо функции CreateOleObject использовать функцию GetActiveOleObject
There are 10 types of people: those who understand binary and those who don't.
Symple me вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Borland C++ Builder - импорт из Excel в StringGrid nuser C++ Builder 3 10.01.2015 12:38
Builder+Excel Symple me C++ Builder 0 10.02.2013 09:03
Импорт excel файла в С++ Builder!!!!!!!!!! Екатерина_21 C++ Builder 2 10.10.2011 15:10
Вставка картинки из файла в Excel при нажатии на кнопку "Экспортировать" из C++ Builder ArTemi4 Помощь студентам 0 06.06.2010 19:48
Чтение данных из файла Excel в C++Builder Max2114 C++ Builder 6 15.01.2009 11:32