Q&A

  • StringGrid를 Excel로 저장시.. 프로세서가 죽지 않습니다.
<!--Codes-->
procedure TRfManListForm.Button1Click(Sender: TObject);
var
  Row,Col : Integer;
begin
  try
  ExcelApplication1.Connect;
except
  MessageDlg('Excel과 연결되지 않습니다.',mtError,[mbOk],0);
  Abort;
end;
try
  ExcelApplication1.Visible[0] := false ;
  ExcelApplication1.WorkBooks.Add(xlWBATWorksheet,0);
  ExcelWorkBook1.ConnectTo(ExcelApplication1.workbooks.Item[1]);
  ExcelWorksheet1.ConnectTo(ExcelWorkBook1.sheets[1] as _Worksheet);
  with ExcelWorksheet1 do
  begin
    for Row := 0 to Grid1.RowCount do
    begin
      for Col := 0 to Grid1.ColCount do
      begin
        Cells.item[Col+1, Row+1] := Grid1.Cells[Col, Row];
      end;
    end;
    SaveAs('c:\Test.xls');
    Finalize(ExcelWorksheet1);
    Finalize(ExcelWorkbook1);
    Finalize(ExcelApplication1);
  end;
except
  on err:exception do
  begin
    ExcelWorkbook1.close;
    ExcelApplication1.Disconnect;
    Finalize(ExcelWorksheet1);
    Finalize(ExcelWorkbook1);
    Finalize(ExcelApplication1);
    ShowMessage('작업이 취소되었습니다. Data확인요망-'+err.message);
  end;
  end;
  end;
end.
<!--CodeE-->
실행후에
Art + Ctrl + Del 로 프로세서를 보면 항상 살아있습니다.
그래서 그 후의 엑셀 동장에 대해서 영향을 끼치구요ㅜ_ㅜ
프로세서를 죽이는 법좀 가르쳐 주셨음 합니다'ㅁ'a

그리고.. 저장시 덮어쓸꺼냐 아닌가를 항상 물어보든데
안물어보고 덮어씌우는 방법도 가르쳐 주셨으면 합니다.

나름대로 찾아봤는데 답이 안나오내요ㅜ_ㅜ
읽어주셔서 감사하구요
그럼 즐델하세요~*
1  COMMENTS
  • Profile
    착한천사 2005.05.09 05:15
    저 같은 경우에는 잘되더군요..
    저는 아래와 같이 했습니다..
    간단히..

    try
         try
                ExcelApplication1.Connect;
                ExcelWorkbook1.ConnectTo(excelApplication1.workbooks.add(TOleEnum(xlWBATWorksheet), LCID));
                ExcelWorksheet1.ConnectTo(excelWorkbook1.worksheets.item['Sheet1'] as _WorkSheet );
                Sheet := ExcelApplication1.WorkBooks[ExcelApplication1.Workbooks.Count].WorkSheets[excelWorkbook1.Worksheets.Count];
              //여기에 뭔가 열심히 작업진행..
         except
               on E:Exception do
                    에러메세지;
         end;
    finally
          ExcelWorksheet1.Disconnect;
          ExcelWorkbook1.Disconnect;
          ExcelApplication1.Disconnect;
    end;

    저는 에러고, Excel Process고 간에..
    다 없어지던데요..
    답이 되었길 바랍니다..