我这样写,出现异常之后会有Excel进程驻留在内存:
Var
  ExcelApp, ExcelBook, ExcelSheet: Variant;
begin
  Try
    ExcelApp := CreateOleObject('Excel.Application');
    ExcelBook := ExcelApp.WorkBooks.Open(FXlsFile);
    ExcelSheet := ExcelBook.Sheets.Item[1];    ...........    ExcelBook.Close;
    ExcelApp.Quit;
    ExcelSheet:=Unassigned;
    ExcelBook:=Unassigned;
    ExcelApp:=Unassigned;
  Except
    On E:Exception do
    begin
      ExcelBook.Close;
      ExcelApp.Quit;
      ExcelSheet:=Unassigned;
      ExcelBook:=Unassigned;
      ExcelApp:=Unassigned;
    end;
  End;