Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: CL | DM;

Вниз

Коллеги, помогите кто делал репорты в Excell-e, очень надо...!   Найти похожие ветки 

 
CPPBuilderDev ©   (2003-01-16 16:18) [0]

Имеем:
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();
Вопрос.
Чего я не так закрываю или какие действия корректно предпринять для правильного закрытия?


 
asmith   (2003-01-16 16:47) [1]

Нужно еще и объект разрушить, если создавал его вручную (из примера это неочевидно). Во всяком случае проверено, что если работать с Excel через позднее связывание и не уничтожить по завершению интерфейсную ссылку явно - Excel останется в памяти.


 
CPPBuilderDev ©   (2003-01-16 16:52) [2]

Создавал не вручную, просто побросал на форму объекты.


 
gsu ©   (2003-01-16 17:03) [3]

NewInstance := true;
...

Excel := TExcelApplication.Create(Self);
if NewInstance then
Excel.ConnectKind := ckNewInstance
else
Excel.ConnectKind := ckRunningOrNew;
Excel.Connect;
поможет ?


 
gsu ©   (2003-01-16 17:06) [4]

и вообще: http://www.delphikingdom.com/helloworld/excel.htm


 
id_privin ©   (2003-01-16 17:34) [5]

я делаю так

Инициализация
ExcelApp := TExcelApplication.Create(nil);
ExcelApp.ConnectKind := ckRunningorNew;
ExcelApp.Connect;

Убийство
FreeAndNil(ExcelApp);

Конектить два раза смысла нет.


 
CPPBuilderDev ©   (2003-01-16 17:38) [6]

Не-а! Тоже самое...


 
CPPBuilderDev ©   (2003-01-16 18:06) [7]

id_privin - большое спасибо Вам коллега, а то к концу дня уже все мозги навыворот. Это же очевидно!!!



Страницы: 1 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-4865
Nikolai_S
2003-01-24 17:44
2003.02.03
Как использовать функцию LineDDA?


1-4847
oomneeq
2003-01-24 13:25
2003.02.03
Ecть ли такая функция?


3-4796
sash
2003-01-17 11:28
2003.02.03
работа с мемо-полями. Помогите разобраться!


1-4874
trotski
2003-01-24 22:12
2003.02.03
RichEdit


3-4790
MsGuns
2003-01-16 19:01
2003.02.03
UPDATE INTO TABLE VALUES.. Добавить более одной строки