我这样写,出现异常之后会有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;
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;
....
except
ExcelBook.Close(false,emptyparam,emptyparam);
ExcelApp.Quit;
ExcelSheet:=Unassigned;
ExcelBook:=Unassigned;
ExcelApp:=Unassigned;
end;