본문 바로가기
소소한 C# 지식

[C#/WINFORM] C#에서 Word 문서 만들기 및 수정하기

by 해뤼맘 2022. 4. 13.
728x90
반응형

워드 문서를 사용하다 보면 간혹

제목만 변경하고 내용은 그대로 쓰고 싶다던지,

제목은 동일하고 내용만 변경하고 싶을 때가 있습니다.

문서를 정형화 하여 자동화시키고 싶을 때 C# WINFORM에서 

워드 문서를 생성 하고 수정할 수 있는 예제를 보여드리겠습니다.

 

1. Nuget 패키지에서 Aspose.Words 설치

  • 프로젝트 - Nuget 패키지 관리 - Aspose.Words 설치

c#, Nuget Pakage, Aspose.Words
Nuget패키지-Aspose.Words 설치

 

2. 워드 문서 생성 및 수정 Winform 생성

  • 워드 문서 만들기 : 제목/부제목 텍스트 입력란을 만들고, 워드 문서 만들기 버튼을 생성한다.
  • 워드 문서 수정 : 부제목만 변경할 수 있도록 텍스트 입력란을 만들고 문서 수정하기 버튼을 생성한다.

Word Create Winform 화면
Word 문서 생성 Winform 화면

3. 워드 문서 생성 및 테이블 만들기

  • 워드 문서 만들기 버튼 클릭(Click) 이벤트 추가
  • using Aspose.Words, using Aspose.Words.Tables 추가
  • 추가하는 새로운 row 마다 font 설정 필요(font 설정 별도로 하지 않을 경우 이전 font 유지)
 public void button1_Click(object sender, EventArgs e)
 {
 			Document doc = new Document();
            DocumentBuilder builder = new DocumentBuilder(doc);

            // 첫줄 font 설정
            Aspose.Words.Font font = builder.Font;
            font.Size = 26;
            font.Bold = true;
            font.Color = System.Drawing.Color.Black;
            font.Name = "굴림체";

            // 첫줄 텍스트 입력
            builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            //제목 텍스트 박스(title.Text)
            builder.Writeln(title.Text);


            //두번째줄 font 설정
            font.Underline = Underline.None;
            font.Size = 20;
            font.Color = System.Drawing.Color.Black;
            //두번째줄 텍스트 입력
            builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
            //부제목 텍스트 박스(title2.Text)
            builder.Writeln(title2.Text);
            builder.Writeln();
            builder.Writeln();

            builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
            font.Size = 15;
            font.Color = System.Drawing.Color.Red;
            builder.Writeln("table 생성");

            // 테이블 그리기
            Table table = builder.StartTable();
            
            // Insert a cell
            builder.InsertCell();
            // Use fixed column widths.
            table.AutoFit(AutoFitBehavior.AutoFitToContents);
            builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
            font.Color = System.Drawing.Color.Black;
            builder.Write("구   분");
            // Insert a cell
            builder.InsertCell();
            font.Size = 20;
            builder.Write("일   자");
            builder.InsertCell();
            font.Size = 20;
            builder.Write("내   용");
            builder.EndRow();
            builder.InsertCell();
            font.Size = 10;
            builder.Write("구분 내용");
            builder.InsertCell();
            font.Size = 10;
            builder.Write("일자 내용");
            builder.InsertCell();
            font.Size = 10;
            builder.Write("내용 내용");
            builder.EndRow();
            builder.EndTable();
            builder.Writeln();

            // 파일 저장
            doc.Save("Document.docx");
}

4. 워드 문서 만들기 결과

  • 아래와 같이 제목/부제목을 입력하고 "워드 문서 만들기" 버튼 클릭
  • Document 문서가 만들어지면서 입력한 데이터로 아래와 같이 생성되는 것을 볼 수 있습니다.

c# winform word 문서 생성 결과

5. 생성된 워드 문서 수정하기

  • 문서 수정하기 버튼 이벤트 추가
  • 부제목만 변경할 수 있도록 아래와 같이 코딩
 private void button2_Click(object sender, EventArgs e)
        {
            Document doc = new Document("Document.docx");
            DocumentBuilder builder = new DocumentBuilder(doc);
           
            var paragraph = doc.Sections[0].Body.Paragraphs[2].Runs[0];
            //부제목 텍스트(title2_update.Text)
            paragraph.Text = title2_update.Text;
            // 문서 저장(update 문서를 별도로 저장하여도 되고 기존 문서랑 동일하게 하여도 가능)
            doc.Save("Document_update.docx");
        }

6. 워드 문서 수정하기 결과

  • 아래와 같이 부제목을 입력하고 "문서 수정하기" 버튼 클릭
  • Document_update 문서가 만들어지면서 입력한 데이터로 아래와 같이 수정되는 것을 볼 수 있습니다.

Word 문서 수정하기
word 문서 수정하기 결과

 

 

이상 c# winform으로 word 문서 생성할 수 있는 예제였습니다.

많은 도움이 되셨으면 좋겠습니다.

728x90
반응형

댓글