Просто чтобы прояснить ситуацию, вам нужно явно выйти из Excel после того, как вы закончили использовать его через автоматизацию. Если вы этого не сделаете, экземпляр будет продолжать работать, даже если ваши переменные выходят из области видимости и запускается сборка мусора. Я считаю, что это команда Quit ():
Excel.ApplicationClass excel = new Excel.ApplicationClass();
//do some work with Excel
excel.Quit();
Я бы порекомендовал вам сделать это с помощью try / catch / finally
Excel.ApplicationClass excel = null;
try
{
excel = new Excel.ApplicationClass();
//do some Excel work
}
catch(Exception ex)
{
//log exception
throw;
}
finally
{
if(excel != null)
excel.Quit();
}