Главная страница
    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.009 c
14-44851
Danilka
2003-06-26 14:51
2003.07.14
Поклонникам матрицы посвящается.


14-44843
CHM
2003-06-25 12:11
2003.07.14
Откуда можно скачать программу для создания СНМ - файлов?


7-44929
Scrach
2003-05-04 03:07
2003.07.14
Есть индентификатор процесса (PID), дискриптор процесса (Handle)


3-44606
Rel_
2003-06-21 14:18
2003.07.14
SQL


3-44556
Well
2003-06-18 08:13
2003.07.14
Как подключиться к БД MS SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский