특징 및 기능
기능 및 특성
이 페이지는 차트 작성 기능을 다룹니다 Aspose.Words FOSS .NET용 작동하는 C# 예제와 함께, DocumentBuilder.InsertChart() 및 Chart 객체 모델. 라이브러리의 전체 문서 객체 모델(단락, 표, 스타일, 북마크, 섹션)은 제품 개요와 Quickstart 가이드.
차트가 포함된 문서 만들기
DocumentBuilder.InsertChart()을(를) 사용하여 차트 도형을 삽입한 다음, 반환된 Shape를 통해 해당 Chart 객체에 접근합니다. 실제 데이터를 추가하기 전에 기본 생성된 시리즈를 지우세요:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");차트 시리즈, 데이터 포인트 및 마커
Chart.Series은(는) ChartSeriesCollection입니다. 각 ChartSeries는 DataPoints을(를) 통해 개별 데이터 포인트를 노출하며, 이를 사용하면 시리즈의 나머지 부분에 영향을 주지 않고 단일 포인트의 마커나 서식을 사용자 정의할 수 있습니다:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
ChartDataPointCollection points = series.DataPoints;
ChartDataPoint point1 = points[0];
ChartDataPoint point2 = points[1];
point1.InvertIfNegative = true;
point1.Marker.Symbol = MarkerSymbol.Square;
point2.InvertIfNegative = true;
point2.Marker.Symbol = MarkerSymbol.Diamond;
// Reset a single data point back to the series' inherited default formatting.
point1.ClearFormat();차트 데이터 레이블
ChartSeries.DataLabels은(는) 시리즈의 모든 포인트에 대한 레이블을 한 번에 제어하는 ChartDataLabelCollection입니다. DataLabels[i]를 사용하여 개별 ChartDataLabel을(를) 재정의합니다:
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
ChartSeries series = chart.Series[0];
series.HasDataLabels = true;
series.DataLabels.ShowValue = true;
ChartDataLabel label = series.DataLabels[1];
label.ShowCategoryName = true;
label.Position = ChartDataLabelPosition.Below;차트 축 제목
Chart.AxisX와 Chart.AxisY은 각각 Title 속성을 통해 ChartAxisTitle를 노출합니다:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
Chart chart = shape.Chart;
ChartAxisTitle xTitle = chart.AxisX.Title;
ChartAxisTitle yTitle = chart.AxisY.Title;
xTitle.Show = true;
xTitle.Text = "Categories";
yTitle.Show = true;
yTitle.Text = "Values";차트 범례 및 글꼴
Chart.Legend은(는) LegendEntries을(를) 노출하며, 시리즈당 하나의 ChartLegendEntry가 있으며 각각 고유한 Font을(를) 가집니다. Font는 채우기 서식을 구현하므로, Font.Fill.Solid()는 다른 서식이 적용된 텍스트와 동일한 방식으로 고정 텍스트 색상을 설정합니다:
using System.Drawing;
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartLegend legend = shape.Chart.Legend;
Font font1 = legend.LegendEntries[0].Font;
Font font2 = legend.LegendEntries[1].Font;
font1.Fill.Solid(Color.Blue);
font2.Color = Color.Green;차트 데이터 테이블
Chart.DataTable은(는) 차트 아래에 기본 시리즈 값을 표시하는 ChartDataTable입니다. Has*Border와 HasLegendKeys 속성은 표시되는 부분을 제어합니다:
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartDataTable dataTable = shape.Chart.DataTable;
dataTable.HasLegendKeys = false;
dataTable.HasHorizontalBorder = true;
dataTable.HasVerticalBorder = true;
dataTable.HasOutlineBorder = false;
doc.Save("chart-report.docx");팁 및 모범 사례
DocumentBuilder.InsertChart()은(는) 새 차트를 기본 생성 시리즈로 채웁니다 — 직접 데이터를 추가하기 전에chart.Series.Clear()을(를) 호출하세요, 그렇지 않으면 기본값이 그대로 유지됩니다.- 몇몇 포인트만 사용자 지정 서식이 필요할 때
ChartSeries.DataLabels[i]을(를) 사용해 하나의 데이터 레이블을 지정하세요; 컬렉션 수준 속성(DataLabels.ShowValue등)을 사용하면 시리즈의 모든 레이블에 한 번에 기본값을 설정할 수 있습니다. ClearFormat()은(는)ChartDataPoint과ChartDataLabelCollection모두에서 사용할 수 있습니다 — 직접 서식을 시리즈가 기본적으로 상속하는 상태로 재설정합니다.- 필드 평가 엔진은
DATE및DOCPROPERTY과 같은 콘텐츠 필드를 프로그래밍 방식으로 업데이트하지만, 페이지 레이아웃에 의존하는 필드(목차의 페이지 번호,NUMPAGES)는 이 버전에 레이아웃 엔진이 포함되지 않아0자리표시자 값으로 평가됩니다. - 다음 보기 설치 가이드 이 API를 참조하기 전에 NuGet를 통해 패키지를 추가하거나 소스에서 빌드하십시오.
일반적인 문제
| 문제 | 원인 | 수정 |
|---|---|---|
페이지 번호 또는 목차 항목에 0가 표시됩니다. | 이 버전에는 페이지 레이아웃/렌더링 엔진이 포함되어 있지 않습니다. | 예상 동작 — 레이아웃 의존 필드 값이 계산되지 않으며, 상용 버전을 사용하십시오. Aspose.Words 용 .NET 필요하시면 |
Document.Save()에서 .pdf, .xps, 또는 이미지 확장자가 실패합니다 | 렌더링 형식은 이 에디션에 포함되어 있지 않습니다 | 대신 DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown 또는 일반 텍스트로 저장하세요 |
.doc, .rtf, .odt, .html 또는 .epub 파일 로드가 실패합니다 | 로드/저장에는 DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown 및 일반 텍스트만 지원됩니다 | 먼저 원본 파일을 DOCX로 변환하거나, 상용 에디션을 사용하십시오 |
| 사용자 지정 데이터를 추가한 후에도 기본 차트 시리즈가 여전히 표시됩니다 | chart.Series.Clear()이(가) InsertChart() 이후에 호출되지 않았습니다 | 기본으로 생성된 시리즈를 chart.Series.Add() 호출하기 전에 지우세요 |
FAQ
목차의 페이지 번호가 0으로 표시되는 이유는 무엇인가요?
이 FOSS 에디션에는 페이지 레이아웃 및 렌더링 서브시스템이 포함되지 않으므로, 페이지 레이아웃에 의존하는 모든 필드 값—페이지 번호를 포함—은 계산된 값이 아니라 자리표시자 0 로 평가됩니다.
문서를 PDF 또는 이미지 형식으로 내보낼 수 있나요?
이 에디션에서는 지원되지 않습니다. PDF, XPS 및 이미지 내보내기는 이 에디션을 무료로 유지하기 위해 제거된 동일한 렌더링 서브시스템에 의존합니다. 해당 출력에는 .NET용 상용 Aspose.Words을 사용하십시오.
문서에 새로운 디지털 서명을 만들 수 있나요?
아니요 — 이 에디션은 기존 디지털 서명을 검증할 수는 있지만 새 서명을 만들 수는 없습니다.
InsertChart()이(가) 지원하는 차트 유형은 무엇입니까?
InsertChart()은(는) ChartType 값을 받습니다 — 이 열거형은 선, 열, 막대, 원형, 면적, 도넛, 레이더, 산점도, 주식, 그리고 표면 차트와 같은 표준 차트군을 포함하며, 이들의 누적 및 3D 변형도 지원합니다.
API Reference 요약
| 클래스 / 속성 | 설명 |
|---|---|
Document | 루트 문서 객체; Save()은 DOCX, Markdown 또는 일반 텍스트에 씁니다 |
DocumentBuilder | 고수준 커서 API; InsertChart()은 차트 도형을 추가합니다 |
Shape | InsertChart()에 의해 반환된 Drawing 객체; Chart 속성을 노출합니다 |
Chart | Chart 객체; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | 시리즈 데이터 (Add, Clear) 및 시리즈별 설정 |
ChartDataPoint / ChartDataPointCollection | 포인트별 포맷팅; ClearFormat() |
ChartMarker / MarkerSymbol | 데이터 포인트 마커 모양 및 크기 |
ChartDataLabel / ChartDataLabelCollection | 레이블별 및 컬렉션 전체 레이블 표시 설정 |
ChartAxisTitle | 제목 텍스트가 Chart.AxisX / Chart.AxisY에 표시됨 |
ChartLegend / ChartLegendEntry | 차트 범례 및 시리즈별 항목 |
ChartDataTable | 차트 아래에 표시된 데이터 테이블 |
Font / Fill | 차트 텍스트 요소의 텍스트 서식 및 채우기(단색, 그라디언트) |