Как закрыть excel
От: sharki1  
Дата: 01.08.07 15:12
Оценка:
Как закрыть excel. Пробую делать так:
private void CloseExcel()
{
try
{
// Quit Excel and clean up.
if (m_Workbook != null)
{
m_Workbook.Close(true, Missing.Value, Missing.Value);
System.Runtime.InteropServices.Marshal.ReleaseComObject(m_Workbook);
m_Workbook = null;
}
if (m_XlApplication != null)
{

m_XlApplication.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(m_XlApplication);
m_XlApplication = null;
System.GC.Collect();
}
}
catch
{
MessageBox.Show("Failed to close the application");
}
}
и все равно не срабатывает Подскажите что не так.Зарание спасибо.
Re: Как закрыть excel
От: Аноним  
Дата: 03.08.07 09:02
Оценка:
Если проверяешь на Debug-версии своего приложения, то попробуй проверить на Release-версии.
Re: Как закрыть excel
От: campri  
Дата: 06.08.07 08:50
Оценка:
А вот у меня так:
if (excelApplication != null)
{
    excelApplication.Quit();
    ReleaseComObject(excelApplication);
}
GC.GetTotalMemory(true);


Тока вот пару замечаний:

1. У меня Excel работает в фоновом, невидимом режиме, и пока было так как у вас, он таки закрывался через некоторое время. Кажется мне, что оно так спецом сделано, чтоб если мы вдруг снова обратимся к Excel'ю вскоре, то он (так как остался открытый) быстрее нас 'обслужил'.

2. Вот здесь:
m_Workbook.Close(true, Missing.Value, Missing.Value);

могут быть (вроде как, не уверен точно) заморочки если .xls был предыдущей версии — типа он по идее должен окно какое-то показать, а показать не может, или наоборот — его показывает, но это пользователю не надо (вот не помню подробностей, но что-то в каком-то случае было)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.