DELPHI执行下面的一段代码后,再打开其他的EXCEL文件总不能打开,可能是内存还有EXCEL的程序,怎么解决?
如果我插入的EXCEL文件中的数据不多,倒没什么问题,否则,就不能打开!
var
   ExcelApplication1:OLEVariant;
   ExcelWorkbook1,ExcelWorksheet1:Variant;
   L_rows:integer;
begin
try
ExcelApplication1 :=CreateOleObject('Excel.Application');
ExcelApplication1.Workbooks.Open('C:\汽车维修EXCEL文档\模板\pandian.xls');
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;
showmessage('请选择EXCEL电子表格!');
exit;
end;
end;for L_rows:=0 to   DM.CDS_DEPOT_REPORT.RecordCount -1 DO
begin
 ......
end;
ExcelApplication1.save('C:\aa.XLS');
 ExcelApplication1.ActiveWorkBook.save;
 ExcelApplication1.ActiveWorkBook.Close;
 ExcelApplication1.Quit;
end;

解决方案 »

  1.   

    excelapplication1.Disconnect;
    或者直接KILL在进程中的EXCEL
      

  2.   

    加上:ExcelApplication1:=unAssigned;
    var
       ExcelApplication1:OLEVariant;
       ExcelWorkbook1,ExcelWorksheet1:Variant;
       L_rows:integer;
    begin
    try
    ExcelApplication1 :=CreateOleObject('Excel.Application');
    ExcelApplication1.Workbooks.Open('C:\汽车维修EXCEL文档\模板\pandian.xls');
    except
    begin
    ExcelApplication1.Disconnect;//出现异常情况时关闭
    ExcelApplication1.Quit;
    showmessage('请选择EXCEL电子表格!');
    exit;
    end;
    end;for L_rows:=0 to   DM.CDS_DEPOT_REPORT.RecordCount -1 DO
    begin
     ......
    end;
    ExcelApplication1.save('C:\aa.XLS');
     ExcelApplication1.ActiveWorkBook.save;
     ExcelApplication1.ActiveWorkBook.Close;
     ExcelApplication1.Quit;
     ExcelApplication1:=unAssigned;
    end;
      

  3.   

    多谢两位,用ExcelApplication1:=unAssigned;也不行
    excelapplication1.Disconnect;也不行,出错:
    Method 'Disconnect' supported by  automation  object.
    直接KILL在进程中的EXCEL.怎么做呢?
      

  4.   

    用优化大师或超级兔子、或者按CRTL+ALT+DEL,KILL EXCEL进程
      

  5.   

    用户把数据保存到了EXCEL文档后,然后他找到了那个文件要打开。
    所以必须在程序中控制,那该怎么办???????
      

  6.   

    估计是你以前程序执行后EXCEL进程仍存在系统中
    你先手动把EXCEL进程KILL掉,按下CTL+ALT+DELETE,在‘任务管理器’-’进程‘面板里,找到EXCEL(如果你此前程序执行N次,会有N个EXCEL进程),然后全部结束掉。
    然后在执行代码看看
      

  7.   

    编译好后,退出IDE,执行生成的EXE文件。