我在delphi中用以下方法生成excel表:
procedure Tfrmgrkq.SpeedButton4Click(Sender: TObject);
var
wkbook:_workbook;
wksheet:_worksheet;
lcid:integer;
begin
        inherited;
   if adoquery1.Eof then exit;   excel.Connect ;//excel是TExcelApplication组件
   lcid:=getuserdefaultlcid();
   wkbook:=excel.Workbooks.Add(emptyparam,lcid);
   wksheet:=wkbook.Sheets[1] as _worksheet;
   ...
   ...
   if directoryexists(extractfilepath(application.ExeName )+'excel')=false then
                forcedirectories(extractfilepath(application.ExeName )+'excel');        wkbook.Close(true,extractfilepath(application.ExeName )+'excel\findresult.xls',emptyparam,lcid);
        excel.Quit ;
        excel.Disconnect;
        showmessage('生成成功!');
end;用一些方法打开一个表:
procedure Tfrmgrkq.SpeedButton5Click(Sender: TObject);
var
wkbook:_workbook;
wksheet:_worksheet;
lcid:integer;
begin
if fileexists(extractfilepath(application.ExeName )+'excel\­findresult.xls')=false then
    begin
    showmessage('你所查找的表不存在!');
    exit;
    end;
excel.Connect ;
lcid:=getuserdefaultlcid();
excel.Visible[lcid]:=true;
wkbook:=excel.Workbooks.Open (extractfilepath(application.ExeName )+'excel\findresult.xls',emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,lcid);
wksheet:=wkbook.Sheets[1] as _worksheet;end;生成是没有问题,第一次打开也很好.可是将excel关闭,在程序中重新生成后再打开,excel只有菜单栏,工作表区成了空白.只有将程序退出后,打开excel才正常.为什么在程序没有关闭的情况下,打开excel只有第一次才正常.excel关闭之后,如果此时用Ctrl+Alt+Del键可以看到工作列表中有excel存在.只有强行关闭后,再打开表才会正常.为什么excel已经关闭,而列表中excel还是存在?不知有没有明白我的意思,就是说按我上面的代码,为什么在程序中只能连续生成表,而不能连续打开表?要如何改才能可以连续生成连续打开.