Q&A

  • excel 오류
var
myexcel : variant;
begin
  myEXCEL := CreateOleObject('Excel.Application');   //여기는 실행됩니다

  //이부분은 (서버에서 예외 오류가 발생...) 오류 메세지가 발행합니다.
  //엑셀은 office97이 깔려 있습니다. 왜거런지 잘 모르겠습니다.
  myEXCEL.WorkBooks.Add;
end;
2  COMMENTS
  • Profile
    원혁상 2002.02.25 18:08
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      BASE, ComObj;
    그오류는 uses ComObj가 없어서 발생하는 오류 같습니다.
    다른 코딩은 다 맞는데 저게 추가가 안되면 오류가 나거든요

  • Profile
    권대웅 2002.02.25 09:45
    안녕하세요!

    왜 그런지는 모르겠네요..!
    지금 제가 사용한  코딩 내용입니다.
    그냥 함 보세요!..
    ^^;;;;

    그리고
    잘 안되시면..
    TscExcelExport 컴포 넌트와 같은
    걸 사용해 보세요!
    아주 잘되요!
    예제두 있구..
    필요하면 멜 주세요! 보내 줄께요!..

    즐 프 하세요!

    procedure TForm1.Button2Click(Sender: TObject);
    var
      vHandle : THandle;
      vExcel : Variant;
      vSheet : Variant;
      i, j : integer;
    begin
      if not Qry.Active then begin
         ShowMessage('쿼리를 실행하세요!');
         Exit;
      end;
       vHandle := FindWindow('XLMAIN',nil);
       if vHandle <> 0 then vExcel := GetActiveOLEObject('Excel.Application')
       else begin
          try
             vExcel := CreateOLEObject('Excel.Application');
          except
             Application.MessageBox('Excel을 열 수 없습니다.'+ char(13) +
                                    'Excel이 설치되어 있는지 확인하세요!',
                                    '정보', MB_OK);
          end;
       end;
       vExcel.Visible := True;

       SetForegroundWindow(vHandle);
       vExcel.WorkBooks.Add;
       vExcel.WorkBooks[vExcel.WorkBooks.Count].WorkSheets[1].Name := Caption;
       vSheet := vExcel.WorkBooks[vExcel.WorkBooks.Count].WorkSheets[Caption];
       vSheet.Cells[1,1].Value := '^^;;';
       for i:= 0 to Qry.FieldCount -1 do
          vSheet.Cells[3,i+1].Value := Qry.Fields[i].FullName;
       j:= 4;
       with Qry do begin
         First;
         DisableControls;
         While not EOF do begin
            for i:= 0 to FieldCount - 1 do begin
               vSheet.Cells[j,i+1].Value := Fields[i].AsString;
            end;
            inc(j);
            Next;
         end;
         First;
         EnableControls;
       end;
    end;