C#를 사용하여 Word 차트를 생성하고 사용자 지정하는 방법
Source: Dev.to
보고서 생성 및 데이터 시각화
보고서를 생성하고 데이터를 시각화하는 것은 많은 비즈니스 애플리케이션에서 중요한 작업입니다. Microsoft Word는 문서 작성에 널리 사용되는 도구이지만, 차트를 수동으로 삽입하고 업데이트하는 작업은 번거롭고 오류가 발생하기 쉽습니다. 이 튜토리얼에서는 Spire.Doc for .NET 라이브러리를 사용하여 C#으로 Word 문서 내 차트를 프로그래밍 방식으로 만들고 사용자 정의하는 방법을 보여줍니다.
환경 설정
Word 문서에 차트를 프로그래밍 방식으로 만들려면 Microsoft Office 없이도 Word 파일을 조작할 수 있는 라이브러리가 필요합니다. Spire.Doc for .NET은 차트 생성을 포함한 Word 문서 조작을 위한 포괄적인 기능을 제공합니다.
NuGet을 통한 설치
- 새 프로젝트 만들기 – Visual Studio를 열고 새 C# 콘솔 애플리케이션(.NET Core 또는 .NET Framework)을 생성합니다.
- NuGet 패키지 설치
- 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 → Manage NuGet Packages…
- Browse 탭에서
Spire.Doc을 검색합니다. Spire.Doc을 선택하고 Install를 클릭합니다.
설치가 완료되면 Word 문서와 차트를 다루는 데 필요한 모든 클래스와 메서드에 접근할 수 있습니다.
차트 유형 및 데이터 시리즈 이해
코드에 들어가기 전에 차트의 기본 구성 요소인 차트 유형과 데이터 시리즈를 알아두면 도움이 됩니다. Spire.Doc은 Microsoft Word에서 일반적으로 사용되는 다양한 차트 유형을 지원합니다.
일반적인 차트 유형
- 막대/세로 막대 차트 – 카테고리별 값을 비교합니다.
- 선 차트 – 시간 흐름이나 순서가 있는 카테고리의 추세를 보여줍니다.
- 원형 차트 – 전체에 대한 비율을 표시합니다.
- 버블 차트 – 세 차원( X, Y, 크기)의 데이터를 시각화합니다.
이러한 유형은 Spire.Doc.Fields.Shapes.Charts.ChartType 열거형에 정의되어 있습니다.
데이터 시리즈
데이터 시리즈는 차트에 플롯되는 관련 데이터 포인트들의 집합입니다. 일반적인 요소는 다음과 같습니다.
- 카테고리(레이블) – 각 데이터 포인트에 대한 텍스트 설명(예: 월, 제품명).
- 값 – 각 카테고리에 해당하는 숫자 데이터.
- 추가 값 – 특정 차트 유형에 필요(예: 버블 차트의 크기).
ChartSeriesCollection 및 ChartSeries를 사용해 데이터 시리즈를 관리하고 추가합니다.
단계별 차트 만들기
아래 예시는 간단한 원형 차트를 만드는 과정을 보여주며, 이어서 버블 차트 예시도 제공합니다.
1. 문서 및 섹션 초기화
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Doc.Fields.Shapes.Charts; // 차트와 ChartSeries에 필요
// 새 Word 문서 생성
Document doc = new Document();
Section section = doc.AddSection();
Paragraph paragraph = section.AddParagraph();
2. 차트 도형 추가
// 원형 차트 추가 (너비 500, 높이 300)
ShapeObject shape = paragraph.AppendChart(ChartType.Pie, 500.0f, 300.0f);
Chart chart = shape.Chart; // Chart 객체 가져오기
Note: 네임스페이스 충돌이 발생하면 전체 네임스페이스
Spire.Doc.Fields.Shapes.Charts.Chart를 사용하세요.
3. 데이터 시리즈 추가
// 기존 시리즈를 모두 삭제 (새 차트에 권장)
chart.Series.Clear();
// 카테고리와 값 정의
string[] categories = { "Word", "PDF", "Excel" };
double[] dataValues = { 2.7, 3.2, 0.8 };
// 차트에 시리즈 추가
ChartSeries series = chart.Series.Add("Document Types", categories, dataValues);
예시: 버블 차트 만들기
Paragraph newPara = section.AddParagraph();
// 버블 차트 추가
ShapeObject bubbleShape = newPara.AppendChart(ChartType.Bubble, 500, 300);
Chart bubbleChart = bubbleShape.Chart;
bubbleChart.Series.Clear();
ChartSeries bubbleSeries = bubbleChart.Series.Add(
"Market Share",
new[] { 2.9, 3.5, 1.1, 4.0, 4.0 }, // X값
new[] { 1.9, 8.5, 2.1, 6.0, 1.5 }, // Y값
new[] { 9.0, 4.5, 2.5, 8.0, 5.0 } // 버블 크기
);
4. 문서 저장
doc.SaveToFile("ChartInWordDocument.docx", FileFormat.Docx);
생성된 Word 문서

고급 사용자 정의
Spire.Doc은 차트 외형과 동작을 세밀하게 조정할 수 있는 다양한 옵션을 제공합니다.
차트 제목
void AppendChartTitle(Chart chart)
{
ChartTitle title = chart.Title;
title.Show = true;
title.Overlay = false; // 플롯 영역과 겹치게 하려면 true로 설정
title.Text = "Quarterly Software Usage";
title.CharacterFormat.FontSize = 12;
// 여기서 추가 서식 지정 가능
}
축, 범례, 데이터 레이블, 색상 등 Chart 객체가 제공하는 속성을 활용해 차트를 더욱 풍부하게 커스터마이즈할 수 있습니다.