1

I do everything. But "excel.exe" process doesn't close. If doExcel.Visible = true, window's excel close. But not process. Why?

Excel.Application excel = new Excel.Application();
Excel.Workbooks books = excel.Workbooks;
Excel.Workbook book = books.Add();
Excel.Sheets sheets = book.Sheets;
Excel.Worksheet sheet = sheets.Item[1];
foreach (Contract c in list){
     //sheet.Cells[i, 1] = some str;}
book.Close(true, @"some path");
books.Close();
excel.Quit();
Marshal.ReleaseComObject(sheet);
Marshal.FinalReleaseComObject(sheet);
Marshal.ReleaseComObject(sheets);
Marshal.FinalReleaseComObject(sheets);
Marshal.ReleaseComObject(book);
Marshal.FinalReleaseComObject(book);
Marshal.ReleaseComObject(books);
Marshal.FinalReleaseComObject(books);
Marshal.ReleaseComObject(excel);
Marshal.FinalReleaseComObject(excel);

GC.Collect();
GC.WaitForPendingFinalizers();
Console.Read();

1 Answers1

0

This work for me:

Release (no Debug)

using Microsoft.Office.Interop.Excel;
//..
Excel.Application excel = new Excel.Application();
Workbook book = excel.Workbooks.Add();
Worksheet sheet = book.Sheets.Item[1];
try
{
    //int i = 2;
    //foreach ()
    //{
    //sheet.Cells[i, 1] = ...;
    //i++;
    //}
}
catch { }
finally
{
    book.Close(true, @"path");
    excel.Quit();
}
Console.Read();

if Debug - doesn't work.