C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Выгрузка Excel
Стас
Отправлено: 15.04.2004, 12:11


Не зарегистрирован







Уважаемые! Помогите плз., новичку.

Встала задача написания программулины для сортировки данных в Excel.
Всё бы ничего, дык столкнулся тут с проблемой выгрузки exel-я из памяти. Т.е. везде пишут, что для закрыти exel, необходимо выполнить:
OleProcedure("Quit").

Но: exel закрывается, да. Но он, зараза остаётся в списках процессов Win2000. При чём, чем больше формируешь новых файлов и скидываешь их в отдельную папку, тем более запущенных exel-ей в списке процессов.Т.е. Закрывать необходимо вручную, чего никак нельзя. Более того, оболочка под билдером должна продолжать работать в фоновом режиме, позволяя при этом просматривать xls-файлы. Ежели их, значит, сейчас начинаешь смотреть, то выскакивает только "верхняя" часть exel-я, а полей-записей не видно.

Чего я только не пробовал....ну, видно упёрся и ничего не соображаю.

Думал чо нитак сделал, но выполнил простейшую рутину из примеров:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant app, ws;
app = CreateOleObject("Excel.Application");
app.OlePropertySet("Visible", true);
app.OlePropertyGet("Workbooks").OleProcedure("Add");
ws = app.OlePropertyGet("Worksheets").OlePropertyGet("Item",1);

//АХТУНГ! ???????????????????
app.OleProcedure("Quit");

}

И... та же проблема.

Уважаемые профессионалы! Подскажите кто чего сможет пожалуйста!

ЗЫ. Опыта программирования на С++ практически нет — занимаюсь программируемыми логическими контроллерами smile.gif)

Спасибо, Стас.




Aptem
Отправлено: 16.04.2004, 06:30


Мастер участка

Группа: Участник
Сообщений: 349



Я делаю так:

CODE
Application.OlePropertyGet ( "WorkBooks", 1 ).OleProcedure ( "Close" );
 Application.OleProcedure ( "Quit" );


И все хорошо работает !
Стас
Отправлено: 16.04.2004, 08:01


Не зарегистрирован







Aptem, спасибо конечно, но не работает.

Висит ексель, зараза, в списке процессов.
Что может быть не так???
Чую, полный ламер я в этих делах и где — то не догоняю.
Пошерстил множество наших форумов, не нашёл однозначного ответа на аналогичный вопрос. Сейчас залез на немецкие....
Спасибо, если что — ICQ 168646575.
Удачи всем.

Вернуться в Вопросы программирования в C++Builder