![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Коллеги, помогите кто делал репорты в Excell-e, очень надо...!
CPPBuilderDev © (2003-01-16 16:18:00)Имеем:
object excel: TExcelApplication
object sheet: TExcelWorksheet
object wb: TExcelWorkbook
Делаем:
excel->Connect();
wb->ConnectTo(excel->Workbooks->Add( xlWBATWorksheet, 0 ));
excel->Visible[0] = true;
sheet->ConnectTo(wb->Get_Sheets()->get_Item(1));
sheet->PageSetup->set_Orientation(xlLandscape);
...
В первый раз все работает ОК.
После чего при попытке повторного выполнения того же кода:
excel->Connect();
wb->ConnectTo(excel->Workbooks->Add( xlWBATWorksheet, 0 ));
excel->Visible[0] = true;
sheet->ConnectTo(wb->Get_Sheets()->get_Item(1));
sheet->PageSetup->set_Orientation(xlLandscape);
...
Получаем зациклившийся Excel,хотя код программы отрабатывает корректно видимо чего-то не закрыто.
Закрываем:
sheet->Disconnect();
wb->Disconnect();
excel->Disconnect();
Но результат не меняется.
Не помогает иexcel->Quit();
Вопрос.
Чего я не так закрываю или какие действия корректно предпринять для правильного закрытия?
CPPBuilderDev (2003-01-16 18:06:00) [1]id_privin - большое спасибо Вам коллега, а то к концу дня уже все мозги навыворот. Это же очевидно!!!
CPPBuilderDev (2003-01-16 17:38:00) [2]Не-а! Тоже самое...
id_privin (2003-01-16 17:34:00) [3]я делаю так
Инициализация
ExcelApp := TExcelApplication.Create(nil);
ExcelApp.ConnectKind := ckRunningorNew;
ExcelApp.Connect;
Убийство
FreeAndNil(ExcelApp);
Конектить два раза смысла нет.
gsu (2003-01-16 17:06:00) [4]и вообще: http://www.delphikingdom.com/helloworld/excel.htm
gsu (2003-01-16 17:03:00) [5]NewInstance := true;
...
Excel := TExcelApplication.Create(Self);
if NewInstance then
Excel.ConnectKind := ckNewInstance
else
Excel.ConnectKind := ckRunningOrNew;
Excel.Connect;
поможет ?
CPPBuilderDev (2003-01-16 16:52:00) [6]Создавал не вручную, просто побросал на форму объекты.
asmith (2003-01-16 16:47:00) [7]Нужно еще и объект разрушить, если создавал его вручную (из примера это неочевидно). Во всяком случае проверено, что если работать с Excel через позднее связывание и не уничтожить по завершению интерфейсную ссылку явно - Excel останется в памяти.