개발 정보/델파이

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

RoRoBong 2020. 11. 26. 16:30
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
반응형