Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.01 c
3-44562
ADOQuery
2003-06-20 07:35
2003.07.14
При ADOQuery.Open появл. ошибка:


1-44668
denis24
2003-07-01 18:31
2003.07.14
как обращаться к закладкам в вордовом докум?


1-44680
snake1977
2003-06-30 11:49
2003.07.14
Excel формат ячеек из Delphi


1-44626
Пубертанец
2003-06-30 09:37
2003.07.14
Почему не работает код?


1-44697
Makhanev A.S.
2003-06-30 20:26
2003.07.14
TMainMenu, TMenuBar.OnDrawItem, Color...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский