Q&A

  • 엑셀 쉬트의 일부분만을 출력 하려면?
쉬트의 일부분만을 출력하려면 어떻게 해야할까요?

          Sheet.PageSetup.PrintArea := '$A$1:$A$4';
          XLApp.ActiveWindow.SelectedSheets.PrintPreview;
          XLApp.ActiveWindow.SelectedSheets.PrintOut;  // Copies:=1, Collate:=True;

4  COMMENTS
  • Profile
    임광섭 2007.05.24 03:21


    procedure TForm1.Button1Click(Sender: TObject);
    var
      XLApp, Sheet: Variant;
      iCol, iRow: integer;
    begin
      try
          try
              XLApp := CreateOLEObject('Excel.Application');
              XLApp.Visible := False;
              XLApp.WorkBooks.Open('c:\temp\sample.xls');
              Sheet := XLApp.Workbooks[1].Worksheets[XLApp.Workbooks[1].Worksheets[1].Name];
              Sheet.PageSetup.PrintArea := '$A$1:$A$3';
              Sheet.PrintOut;
          except
              ShowMessage('Excel Open Error');
              //raise;
          end;
      finally
          XLApp.WorkBooks.Close;
          XLApp.Quit;
          XLAPP := unassigned;
      end;
    end;

    위와같이 하면 출력은 되는데..
    Sheet.PageSetup.PrintArea := '$A$1:$A$3'; => 이 부분이 엑셀시트가 수정이 되어서
    종료할때 저장여부를 물어보네요... 저장여부를 안물어볼수 있게 할수 없을까요??


  • Profile
    임광섭 2007.05.24 03:23
    그리고
          XLAPP := unassigned;
    라고 했을때
    ctrl+Alt+del 을 눌러 프로세스 창을 보면 EXCEL.EXE가 없어지지 않고
    프로세스에 계속 있네요...
    조언 부탁드립니다.
  • Profile
    최용일 2007.05.28 22:01
    안녕하세요. 최용일입니다.

    예전에 해봤던거라 확실하지는 않지만.... 아래와 같이 해보세요...

    XLAPP.Quit;
    XLAPP := nil; // or unassigned

    ^^ 항상 즐코하세요...

  • Profile
    한하눌 2007.05.29 01:11

    XL.DisplayAlerts := False;
    XL.Quit;

    이렇게 하시면 됩니다.