[Delphi] 델파이 MS Excel, Word 사용하기

    728x90

    안녕하세요

    로로봉입니다 : )

    이번 포스팅에서는 Excel과 Word를 델파이 소스상에서 다뤄보겠습니다.

    Delphi에서 Excel과 Word를 사용하기 위해선 Uses절에 ComObj를 추가해주어야 합니다.

    우선 Excel 부터 사용하는 방법을 알아보자. Excel의 경우 총 3개의 Variant 변수가 필요합니다.

    아래와 같이 Appplication, WorkBook, WorkSheet를 저장할 변수를 선언 후 사용하면 됩니다.

    var
    
     Excel_App, Excel_Book, Excel_Sheet : Variant;
    // Excel 프로그램 실행하여 Excel_App 변수에 연결
    
    Excel_App := CreateOleObject('Excel.Application');
    
    // Excel 프로그램 표시(True) 및 숨김(False)
    
    Excel_App.Visible := True;
    
    // Excel 저장 시 "변경 내용을 저장하시겠습니까?" 메시지 표시 하지 않음
    
    Excel_App.DisplayAlerts := False;
    
    
    
    // Excel 파일 추가
    
    Excel_Book := Excel_App.WorkBooks.Add;
    
    // 기존 Excel 파일 열기
    
    Excel_Book := Excel_App.WorkBooks.Open(FileName);
    
    
    
    // 첫번째 WorkBook 첫번째 Sheet 저장
    
    Excel_Book := Excel_App.WorkBooks.Item[1];
    
    Excel_Sheet := Excel_Book.WorkSheets.Item[1];
    
    
    // 기존 Excel 파일의 경우 사용하고 있는 셀의 Row, Column의 Count 값 저장
    
    iRow := Excel_Sheet.UsedRange.Rows.Count;
    
    iCol := Excel_Sheet.UsedRange.Columns.Count;
    
    
    
    // 첫번째 셀에 데이터 기록
    
    Excel_Sheet.Cells[1,1] := '데이터';
    
    
    
    // Excel 파일 저장
    
    Excel_Book.SaveAs(저장할 파일명);
    
    
    
    // Excel 프로그램 정상 종료
    
    Excel_App.WorkBooks.Close;
    
    Excel_App.Quit;
    
    Excel_App := Unassigned;


     


    다음으로 Word를 사용하기 위해서 아래와 같이 1개의 Variant 변수를 선언 후 사용하면 됩니다.

    var
    
     Word_App : Variant;
    // Word 프로그램 실행하여 Wrod_App 변수에 연결
    
    Word_App := CreateOleObject('Word.Application');
    
    // Word 프로그램 표시(True) 및 숨김(False)
    
    Word_App.Visible := True;
    
    // Word 문서 저장 시 "변경 내용을 저장하시겠습니까?" 메시지 표시 하지 않음
    
    Word_App.DisplayAlerts := False;
    
    
    
    // Word 문서 추가
    
    Word_App.Documents.Add;
    
    // 기존 작성된 Word 문서 열기
    
    Word_App.Documents.Open(Filename);

    // ** 내용 수정하기 **

    const
    
     wdFindContinue = 1;
    
     wdReplaceAll = 2;
    Word_App.Selection.Find.Text := '찾을문자';
    
    Word_App.Selection.Find.Replacement.Test := '변경할 문자';
    
    Word_App.Selection.Find.Wrap := wdFindContinue;
    
    Word_App.Selection.Find.Execute(Replace := wdReplaceAll);
    
    
    
    // 열려있는 문서를 인쇄한다.
    
    Word_App.ActiveDocument.PrintOut(False);

    // ** Word 프로그램 정상 종료 **

    const wdDoNotSaveChanges = 0;
    
    Word_App.Documents.Close(wdDoNotSaveChanges);
    
    Word_App.Quit;
    
    Word_App := Unassigned;

     

    좋아요♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글