Excel взаимодействие COM не закрывается
У меня есть код, который открывает электронную таблицу, читает некоторые значения, а затем закрывает лист. Мне нужно сделать это для нескольких файлов. Проблема яСуть в том, что экземпляр приложения Excel не завершается, поэтому, когда я запускаю свой процесс для нескольких файлов, я получаю несколько запущенных процессов Excel.exe. Любые идеи, как я могу закрыть Excel?
static void ParseFile(string file)
{
try
{
System.Console.WriteLine("parsing:" + file);
Excel.Application excel = new Excel.Application();
Excel.Workbook wb = excel.Workbooks.Open(file);
Excel.Worksheet ws = wb.Worksheets[1];
for (int i = 2; i < 27; i++)
{
log(ws.Cells[i, 1].Text);
}
wb.Close(false);
excel.Quit();
excel = null;
ws = null;
wb = null;
}
catch (Exception ex)
{
log(ex.Message);
}
}
------ Обновление 12/11/12 -------- Все еще оставляя экземпляры Excel открытыми -------
static void ParseFile(string file)
{
try
{
log("parsing:" + file);
Excel.Application excel = new Excel.Application();
Excel.Workbook wb = excel.Workbooks.Open(file);
Excel.Worksheet ws = wb.Worksheets[1];
//do some stuff here
wb.Close(false);
excel.Quit();
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(ws);
Marshal.FinalReleaseComObject(wb);
Marshal.FinalReleaseComObject(excel);
excel = null;
ws = null;
wb = null;
System.GC.Collect();
}
catch (Exception ex)
{
log(ex.Message);
}
}