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

Вниз

TExcelApplication, завершение процесса EXCEL.EXE   Найти похожие ветки 

 
Pentium 5   (2003-07-01 12:51) [0]

Как завершить процесс Excel после создания отчета? А то если моя прога еще работает, я не могу открыть созданный отчет. Если я прибиваю EXCEL.EXE в диспетчере задач все в порядке открывается. Заранее спасибо.


 
clickmaker ©   (2003-07-01 12:55) [1]

ExcelApplication.Quit


 
Pentium 5   (2003-07-01 13:09) [2]

Ни фига не работает. В процессах EXCEL.EXE все равно присутствует. Из панели задач после выполнения Quit Excel исчезает.


 
Bel ©   (2003-07-01 13:17) [3]

Чтобы иметь доступ к созданному отчёту необязательно завершать Excel. Достаточно закрыть файл отчёта. Что-то типа Workbook.Close.


 
Pentium 5   (2003-07-01 13:20) [4]

ExcelApplication.Workbooks.Close(LOCALE_USER_DEFAULT);
ExcelApplication.Quit;
ExcelApplication.Free;

И не работает.


 
Smashich ©   (2003-07-01 13:30) [5]

2 Pentium 5 (01.07.03 13:20)
ExcelApplication.Dissconnect;


 
Pentium 5   (2003-07-01 13:36) [6]

ExcelApplication.Workbooks.Close(LOCALE_SYSTEM_DEFAULT);
ExcelApplication.Disconnect;
ExcelApplication.Quit;
ExcelApplication.Free;


ExcelApplication.Workbooks.Close(LOCALE_SYSTEM_DEFAULT);
ExcelApplication.Quit;
ExcelApplication.Disconnect;
ExcelApplication.Free;


Ни так ни так, EXCEL все равно висит в процессах.
Можно как-нибудь получить его Handle. Я б его сразу TerminateProcess"м убил.


 
Smashich ©   (2003-07-01 13:40) [7]

2 Pentium 5 (01.07.03 13:36)
значит с ошибкой у тебя отчет формируется. и до вызовов quit. dissconnect просто не доходит дело.


 
Pentium 5   (2003-07-01 13:47) [8]

Под отладчиком проверял через F8. После Workbooks.Close(LOCALE_SYSTEM_DEFAULT); закр. книги, ExcelApplication.Quit закр. Excel, но в процессах висит. Меня это уже достало.


 
Pentium 5   (2003-07-01 13:54) [9]

Прикол вообще вот в чем. После Disconnect закр. Excel, а после Quit в диспетчере появляется второй экземпляр Excel, который удаляется после Free. Вот такая байда.


 
Smashich ©   (2003-07-01 13:56) [10]

ExcelApplication.Workbooks.Close();
ExcelApplication.Quit;
ExcelApplication.Disconnect;
ExcelApplication.Free;

вот так надоть.


 
Pentium 5   (2003-07-01 14:04) [11]

2 Smashich
Попробуй ради прикола.
ExcelApplication := TExcelApplication.Create(Self);

ExcelApplication.ConnectKind := ckNewInstance;
ExcelApplication.Connect;
ExcelApplication.AutoQuit := true;
ExcelWorkbook2 := ExcelApplication.Workbooks.Add(EmptyParam,LOCALE_USER_DEFAULT);
ExcelWorkBook2.Activate(LOCALE_USER_DEFAULT);
ExcelWorksheet2 := ExcelApplication.ActiveWorkbook.ActiveSheet as ExcelWorkSheet;
ExcelApplication.Visible[LOCALE_USER_DEFAULT] := true;
ExcelApplication.ActiveWorkbook.SaveAs("file.xls",
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,xlNoChange,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,LOCALE_USER_DEFAULT);

ExcelApplication.Workbooks.Close(LOCALE_USER_DEFAULT);
ExcelApplication.Quit;
ExcelApplication.Disconnect;
ExcelApplication.Free;

Я не знаю в чем прикол. Но EXCEL живучий гад.


 
Smashich ©   (2003-07-01 14:18) [12]

во первых можешь делать вот так:

ExcelApplication:= TExcelApplication.Create(Self);
ExcelApplication.ConnectKind := ckNewInstance;
ExcelApplication.Connect;
ExcelApplication.AutoQuit := true;
ExcelApplication.Workbooks.Add(EmptyParam,LOCALE_USER_DEFAULT);
ExcelApplication.Visible[LOCALE_USER_DEFAULT] := true;
ExcelApplication.ActiveWorkbook.SaveAs("file.xls",
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,xlNoChange,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,LOCALE_USER_DEFAULT);
ExcelApplication.Workbooks.Close(LOCALE_USER_DEFAULT);
ExcelApplication.Quit;
ExcelApplication.Disconnect;
ExcelApplication.Free;

и все будет путем.
а во вторых

var
ExcelApplication:TExcelApplication;
begin
ExcelApplication := TExcelApplication.Create(Self);
ExcelApplication.ConnectKind := ckNewInstance;
ExcelApplication.Connect;
ExcelApplication.AutoQuit := true;
ExcelWorkbook1.ConnectTo(ExcelApplication.Workbooks.Add(EmptyParam,LOCALE_USER_DEFAULT));
ExcelWorkBook1.Activate(LOCALE_USER_DEFAULT);
ExcelWorksheet1.ConnectTo(ExcelApplication.ActiveWorkbook.ActiveSheet as ExcelWorkSheet);
ExcelApplication.Visible[LOCALE_USER_DEFAULT] := true;
ExcelApplication.ActiveWorkbook.SaveAs("file.xls",
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,xlNoChange,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,LOCALE_USER_DEFAULT);
ExcelApplication.Workbooks.Close(LOCALE_USER_DEFAULT);
ExcelApplication.Quit;
ExcelApplication.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelWorksheet1.Disconnect;
ExcelApplication.Free;
end;






 
Pentium 5   (2003-07-01 14:42) [13]

У ExcelWorkbook1 и ExcelWorksheet1 нет метода Disconnect.


 
Smashich ©   (2003-07-01 14:46) [14]

ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;

в D6 все работает. лично компилил.


 
Pentium 5   (2003-07-01 15:15) [15]

Огромное спасибо!!!
Пиз##ц. Вместо ExcelWorksheet1: TExcelWorksheet поставил ExcelWorksheet1: ExcelWorksheet, вот в чем глюк.
Теперь все рулезно работает.

ЗЫ. Ты забыл
ExcelWorksheet1 := TExcelWorksheet.Create(Self);
ExcelWorkbook1 := TExcelWorkbook.Create(Self);
Еще раз большое спасибо.


 
Smashich ©   (2003-07-01 15:20) [16]

2 Pentium 5 (01.07.03 15:15)
я не забыл - просто бросил на форму
ExcelWorksheet1 и ExcelWorkbook1:) - не люблю ими пользоваться

з.ы.

обращайся:)



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

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

Наверх




Память: 0.5 MB
Время: 0.014 c
14-44900
Soft
2003-06-25 19:16
2003.07.14
Программисты и админы


3-44557
st-av
2003-06-19 18:43
2003.07.14
Имя таблицы как параметр хранимойпроцедуры


3-44547
kati
2003-06-19 16:46
2003.07.14
Стек переполнен


14-44823
Мазут Береговой
2003-06-25 22:23
2003.07.14
Странные ощущения у меня возникли после прочтения ссылки


9-44534
Кен
2003-01-27 07:53
2003.07.14
GlScene Нет ли где нибудь описания для Material ? Уж больно много