Q&A

  • 테이블 내용을 엑셀변환후 윈도우 작업관리자 프로세스에 이미지 이름이 그대로 남아 있네요..어떻게 해야죠?
procedure TfrmConvertExcel.excelconvert(tbl:TMySqlQuery);
var
  XL,WorkBook: Variant;
  i,Col1,Col2,mCnt : integer;
  ArrV: OleVariant;
  Row,Col, mClbCnt : Integer;
  mStr:string;
begin
  Screen.Cursor:= crHourGlass;
  try
    XL:= CreateOleObject('Excel.Application');
  except
    Application.MessageBox('Excel이 설치되어 있지 않습니다. 먼저 Excel을 설치하세요.',
      '오류', MB_OK or MB_ICONERROR);
    Screen.Cursor  := crDefault;
    Exit;
  end;

  Application.ProcessMessages;
  try
    WorkBook := XL.WorkBooks.Add;
    ArrV := VarArrayCreate([0,tbl.RecordCount+1 , 0, tbl.FieldCount], VarVariant);


    I := 0;
    tbl.First;

    for Row := 1 to tbl.RecordCount do
    begin
      for Col := 0 to tbl.FieldCount-1 do
      begin
         Application.ProcessMessages;
         ArrV[Row, Col] := ''''+StringReplace(tbl.Fields[Col].AsString, ',', '', [rfReplaceAll]);
      end;


      Application.ProcessMessages;
      Inc(I);
      if tbl.Eof then break;
      tbl.Next;
    end;

    XL.Range[XL.Cells[1, 1], XL.Cells[tbl.RecordCount+1, tbl.FieldCount]].value:= ArrV;

    XL.DisplayAlerts := False;
    XL.Visible:= True;
  finally
    Application.ProcessMessages;
    Screen.Cursor  := crDefault;
  end;
end;

위와같이 하고 있는데...엑셀로 여러번 변환시키면 프로세스에 마찬가지로 EXCEL.EXE라는 이미지 이름이 여러번 존재하더군요...어떻게 해야 프로세스에 있는 이미지 이름을 제거할 수 있을까요?
1  COMMENTS
  • Profile
    구창민 2007.08.17 00:59
    안녕하세요..

    루틴 수행후 수작업으로 엑셀을 닫는 행동이 없다면 프로세서가 존재하겠지요..

    엑셀처리를 다 마치신후, 눈으로 보지 않는다면

    XL.Visible:= True;

    문장을 빼시고,

    아래 문장을 추가해보세요..

        XL.Quit;
        XL:= Unassigned;

    그럼..즐거운 프로그래밍 하시길~