Maneira adequada de fechar o aplicativo Excel

Estou escrevendo um aplicativo, que acessa o arquivo Excel com este código:

RBTApplication = new Excel.Application();
RBTWorkbooks = RBTApplication.Workbooks;
RBTWorkbook = RBTApplication.Workbooks.Open(
    RBTDataSet.Instance.FilePath, 0, true, 5, "", "", true,
    Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
    "\t", true, false, 0, true, 1, 0 );
RBTWorksheet = (Excel.Worksheet)RBTWorkbook.Worksheets.get_Item( 1 );
RBTRange = RBTWorksheet.UsedRange;

Depois de carregar os dados necessários, tento fechar o aplicativo Excel com este pedaço de código:

RBTWorkbook.Close();
RBTApplication.Quit();
RBTWorksheet.ReleaseComObject();
RBTWorkbook.ReleaseComObject();
RBTWorkbooks.ReleaseComObject();
RBTApplication.ReleaseComObject();

Meu problema é que o processo EXCEL.EXE ainda está em execução. Solução simples, como matar todos os processos do Excel, não parece ótima, pois meu processo pode ser uma das muitas planilhas usadas ao mesmo tempo. Essa também afeta a abertura de novas planilhas do Excel - todas são abertas como somente leitura até eu não interromper esse process

Então ... como fechar esse aplicativo corretamente OU matar esse processo específico (existe alguma maneira de obter o PID do objeto COM?). Acho que encontrei um (ainda não tentei) - obter lista de processos de excelência antes e depois de abrir o novo ExcellApp, comparar listas (obter diferença), matar processos específicos sabendo seu PID. Mas esta solução não parece ser uma maneira adequada de lidar com objetos COM e outros aplicativos de dentro do meu aplicativo.

questionAnswers(2)

yourAnswerToTheQuestion