如题,在代码里,如果我不加入画线的代码,excel的进程就能自动释放;但是,我加上画线的代码后,excel的进程就释放不了了,什么鬼情况啊,哪位大神能解惑~?方法一:
//          Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[1].linestyle:=1;
//          Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[2].linestyle:=1;
//          Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[3].linestyle:=1;
//          Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[4].linestyle:=1;
//          Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].Characters.Font.FontStyle :='加粗';
方法二:
//          range:=Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]];//选定表格
//          range.borders[1].linestyle:=1;
//          range.borders[2].linestyle:=1;
//          range.borders[3].linestyle:=1;
//          range.borders[4].linestyle:=1;
//          Range.Characters.Font.FontStyle :='加粗';
//          range.select;
两种方法都没用,excel的进程都在。。

解决方案 »

  1.   

    这就是使用OLE调用EXCEL的弊端。卡住了,建议使用第三方控件,写EXCEL。
      

  2.   

    退出EXCL,释放Variant
        EexcelApp.Quit;
        Sheet :=Unassigned ;
        ETApp:=Unassigned;
      

  3.   

    退出EXCL,释放Variant
        EexcelApp.Quit;
        Sheet :=Unassigned ;
        EexcelApp:=Unassigned; 
      

  4.   

    这是我导出excel的主代码,你参考最后一段释放部分
    with FormProgress do
      begin
        Show;
        try
          InitProgressState('正在生成Excel文档');
          vResult:=RepCreat(aExportInfo.MainTitle);
          if vResult<>'' then
          begin
            raise Exception.Create(vResult);
          end;
          SetProgressState('正在生成Excel工作表',10);
          CreatRepSheet(2,2);
          SetProgressState('正在生成标题',5);
          CreatTitle(aExPortInfo);
          SetProgressState('正在生成表头',5);
          CreatSubHead(aExportInfo);
          SetProgressState('正在写入数据',5);      //里面计算其余的70
          WriteData(aExportInfo);
          SetProgressState('正在显示文档',5);
          FreeAndNil(FormProgress);
          ExlApp.Visible:=True;
        except
          on E:Exception do
          begin
            FormProgress.Close;
            FreeAndNil(FormProgress);
            ExlApp.quit ;
            ExlApp:=unassigned;
            MessageDlg('导出失败!'+#13#10+E.Message,mtError,[mbok],0);
          end;
        end;
        if FormProgress<>nil then
          FreeAndNil(FormProgress);
      end;
      

  5.   

    Temsheet.quit; //关闭Excel
    Temsheet := unassigned;