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;
如果我插入的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;
或者直接KILL在进程中的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;
ExcelApplication1:=unAssigned;
end;
excelapplication1.Disconnect;也不行,出错:
Method 'Disconnect' supported by automation object.
直接KILL在进程中的EXCEL.怎么做呢?
所以必须在程序中控制,那该怎么办???????
你先手动把EXCEL进程KILL掉,按下CTL+ALT+DELETE,在‘任务管理器’-’进程‘面板里,找到EXCEL(如果你此前程序执行N次,会有N个EXCEL进程),然后全部结束掉。
然后在执行代码看看