728x90
반응형
워드 문서를 사용하다 보면 간혹
제목만 변경하고 내용은 그대로 쓰고 싶다던지,
제목은 동일하고 내용만 변경하고 싶을 때가 있습니다.
문서를 정형화 하여 자동화시키고 싶을 때 C# WINFORM에서
워드 문서를 생성 하고 수정할 수 있는 예제를 보여드리겠습니다.
1. Nuget 패키지에서 Aspose.Words 설치
- 프로젝트 - Nuget 패키지 관리 - Aspose.Words 설치
2. 워드 문서 생성 및 수정 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 문서가 만들어지면서 입력한 데이터로 아래와 같이 생성되는 것을 볼 수 있습니다.
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 문서가 만들어지면서 입력한 데이터로 아래와 같이 수정되는 것을 볼 수 있습니다.
이상 c# winform으로 word 문서 생성할 수 있는 예제였습니다.
많은 도움이 되셨으면 좋겠습니다.
728x90
반응형
'소소한 C# 지식' 카테고리의 다른 글
[C#]NTP 서버 - PC 시스템 시간 동기화 프로그램 (4) | 2022.04.20 |
---|---|
[C#/WINFORM]-Datagridview Excel Import(엑셀 불러오기) (2) | 2022.04.20 |
[c#/WINFORM] - Datagridview Excel Export (엑셀 내보내기) (0) | 2022.04.18 |
[C#]데이터 포맷(Data Format) 형식 변경 - 숫자, 일자, 시간 (0) | 2022.04.14 |
[C# Winform]DatagridView 셀 병합 하기 (8) | 2022.04.11 |
댓글