|
도장 |
|
문서번호 AYC-003 |
선문비트 28기 안윤철
목차
1. Microsoft.Office.Interop
Microsoft.Office와 상호작용 하기 위한 어셈블리로 Word문서를
만들기 위해서는
Microsoft.Office.Word를 참조추가 해야 합니다..
Word에는 수많은 Interface가 존재하기 때문에 이번 기술문서에서는 뒤에 나오는 실습에서 사용할 Interface들에 대해서만 기술하겠습니다. 더 많은 내용은 MSDN를 참조하세요..
Application |
Microsoft Word 응용 프로그램을 나타냅니다 |
Document |
Visual Studio의 Office 개발 도구를 사용하여 만든 Word 프로젝트의 문서를 나타냅니다.. |
Selection |
창에서 현재 선택을 나타냅니다. |
Table |
하나의 테이블을 나타냅니다.. |
3. 속성 및 메서드
Documents |
열려있는 모든 문서를 나타냅니다. |
Visible |
지정한 객체의 표시 여부를 결정합니다. 객체를 표시할 경우 True를 반환하고, 그렇지 않는 경우에는 False를 반환합니다. |
Selection |
선택한 범위나 삽입 지점을 나타내는 Selection개체를 반환합니다. |
Select |
문서를 선택합니다. |
Close |
문서를 닫습니다. |
Save |
문서를 저장합니다. 문서가 이전에 저장되지 않았으면, 파일 이름을 입력 받는 다른 이름으로 저장 대화상자가 열립니다. |
TypeText |
지정한 텍스트를 삽입합니다. |
TypeParagraph |
비어있는 새 단락을 삽입합니다. |
GoTo |
즉시 지정된 항목 앞의 문자 위치에 삽입 지점을 이동합니다. |
AllowAutoFit |
Microsoft Word에서 자동으로 내용에 맞게 테이블의 셀 크기를 조정할 수 있습니다. |
Borders |
지정한 개체에 대한 모든 경계를 나타내는 테두리 컬렉션을 반환합니다. |
Columns |
테이블의 모든 열을 나타내는 열 컬렉션을 반환합니다. |
Rows |
테이블의 모든 행을 나타내는 행 컬렉션을 반환합니다. |
Shading |
지정한 오브젝트에 대한 음영 서식을 참조하는 음영 오브젝트를 반환합니다. |
4. 실습
-참조추가
Winform에 버튼 하나를 생성하고 버튼을 클릭하면 워드 문서를
작성하는 코드를 실습하겠습니다.
참조 추가에서 Microsoft.Office.Interop.Word를 추가하고 Word네임스페이스 내의 인터페이스들에게 직접 접근하기 위하여 아래와 같이 작성합니다.
using Word = Microsoft.Office.Interop.Word; |
-Word 문서 생성
Form 클래스에 전역변수를 선언해주고
Word.Application wordApp; Word.Document wordDoc; Word.Selection wordSelection; |
버튼클릭 이벤트 함수에 아래와같이 워드 문서를 생성하는 코드를 작성해줍니다.
wordApp = new Word.Application(); wordApp.Visible = true; //Vislble을 false로 하면 문서가 생성되지만 화면에 보여지지 않는다. Word.Document wordDoc = wordApp.Documents.Add(); |
-데이터 입력
wordSelection = wordApp.Selection; //데이터가 추가 변경될 문서의 단락이나 범위 지정 string date = "작성일:"; wordSelection.TypeText(date); object objdate = "dddd, MMMM dd, yyyy" + "."; wordSelection.InsertDateTime(objdate, true); //날짜 작성 wordSelection.TypeParagraph();//비어있는 단락 추가(라인내리기) wordSelection.Range.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //현재 단락 가운데정렬 wordSelection.Font.Size = 20; //폰트크기 설정 string Title = " 문자입력 음냐뤼 "; wordSelection.TypeText(Title); wordSelection.TypeParagraph();//비어있는 단락추가 |
-표 작성
Word.Table wordTable = wordDoc.Tables.Add(wordSelection.Range, 5, 7); //가로 7칸 세로 5칸의 생성해준다. t_cnt++; //t_cnt 1증가 wordTable.Borders.Enable = 7; //테이블 테두리 선속성 wordTable.Columns[1].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[2].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[3].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[4].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[5].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[6].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); wordTable.Columns[7].SetWidth(70, Word.WdRulerStyle.wdAdjustNone); //WdRulerStyle= 왼쪽 들여 쓰기가 변경되는 테이블을 조정하는 방법을 지정합니다. //wdAdjustNone = 왼쪽 또는 오른쪽으로 이동하여 모든 열의 폭을 보존, 행 또는 행의 왼쪽 가장자리를 조정합니다. 이 값은 기본값입니다. wordTable.Rows[1].Cells.Shading.BackgroundPatternColorIndex = Word.WdColorIndex.wdAuto; //1번째 행 셀의 배경색상 wordTable.Rows[1].Range.Bold = 100; //1번째 행 폰트의 두께 wordTable.Rows[1].Range.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; //1번째 행 단락 정렬 center = 중앙 |
-표안에 데이터 작성
표안에 데이터를 작성하는 함수를 추가한다.
private void FillRow(Word.Document wordDoc, int Row, params string[] elements) { for (int i = 0; i < elements.Length; i++) { wordDoc.Tables[t_cnt].Cell(Row, i + 1).Range.InsertAfter(elements[i]) } } |
FillRow(wordDoc, 1, "음", "냐", "뤼", "얌", "냐", "뤼", "비트28기"); //1번째 행에 데이터 작성 FillRow(wordDoc, 2, "얌", "냐", "뤼", "얌", "냐", "뤼", "화이팅"); //2번째 행에 데이터 작성 FillRow(wordDoc, 5, "언", "제", "나", "휴", "일", "^", "^"); //3번째 행에 데이터 작성 |
5.
실행결과
button1을 클릭하면 아래문서 생성