Recursos e Funcionalidades

Recursos e Funcionalidades

Recursos e Funcionalidades

Esta página cobre as capacidades de criação de gráficos de Aspose.Words FOSS para .NET com exemplos funcionais de C#, construídos em torno de DocumentBuilder.InsertChart() e o Chart modelo de objeto. O modelo completo de objeto de documento da biblioteca (parágrafos, tabelas, estilos, marcadores, seções) é descrito na visão geral do produto e no Quickstart guia.


Criando um Documento com um Gráfico

Insira uma forma de gráfico com DocumentBuilder.InsertChart(), então acesse seu objeto Chart através do Shape retornado. Limpe a série gerada por padrão antes de adicionar dados reais:

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");

Séries de Gráfico, Pontos de Dados e Marcadores

Chart.Series é um ChartSeriesCollection. Cada ChartSeries expõe seus pontos de dados individuais através de DataPoints, o que permite personalizar o marcador ou a formatação de um único ponto sem afetar o restante da série:

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();

Rótulos de Dados do Gráfico

ChartSeries.DataLabels é um ChartDataLabelCollection que controla os rótulos de todos os pontos da série de uma vez. Indexe nele com DataLabels[i] para sobrescrever um ChartDataLabel individual:

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;

Títulos dos Eixos do Gráfico

Chart.AxisX e Chart.AxisY cada um expõe um ChartAxisTitle através da propriedade Title:

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";

Legenda do Gráfico e Fontes

Chart.Legend expõe LegendEntries, um ChartLegendEntry por série, cada um com seu próprio Font. Font implementa formatação de preenchimento, portanto Font.Fill.Solid() define uma cor de texto sólida da mesma forma que faria em qualquer outra sequência formatada:

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;

Tabela de Dados do Gráfico

Chart.DataTable é um ChartDataTable que exibe os valores subjacentes da série abaixo do gráfico. Suas propriedades Has*Border e HasLegendKeys controlam quais partes são visíveis:

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");

Dicas e Melhores Práticas

  • DocumentBuilder.InsertChart() preenche o novo gráfico com uma série gerada por padrão — chame chart.Series.Clear() antes de adicionar seus próprios dados, ou os padrões permanecerão ao lado dele.
  • Use ChartSeries.DataLabels[i] para direcionar um rótulo de dados quando apenas alguns pontos precisam de formatação personalizada; use as propriedades de nível de coleção (DataLabels.ShowValue e similares) para definir um padrão para todos os rótulos da série de uma vez.
  • ClearFormat() está disponível tanto em ChartDataPoint quanto em ChartDataLabelCollection — ele redefine a formatação direta para o que a série herda por padrão.
  • O motor de avaliação de campos atualiza campos de conteúdo como DATE e DOCPROPERTY programaticamente, mas campos que dependem do layout da página (números de página em um sumário, NUMPAGES) são avaliados como valores de placeholder 0 porque esta edição não inclui o motor de layout.
  • Veja o Guia de Instalação para adicionar o pacote via NuGet, ou compilar a partir do código-fonte, antes de referenciar estas APIs.

Problemas Comuns

ProblemaCausaCorreção
Números de página ou entradas do sumário mostram 0Esta edição não inclui o mecanismo de layout/renderização de páginaComportamento esperado — valores de campo dependentes de layout não são calculados; use a versão comercial Aspose.Words para .NET se precisar deles
Document.Save() para .pdf, .xps, ou uma extensão de imagem falhaOs formatos de renderização não estão incluídos nesta ediçãoSalve como DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown ou texto simples, em vez disso
Carregar um arquivo .doc, .rtf, .odt, .html ou .epub falhaSomente DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown e texto simples são suportados para carregamento e salvamentoConverta o arquivo fonte para DOCX primeiro, ou use a edição comercial
A série padrão do gráfico ainda aparece após a adição de dados personalizadoschart.Series.Clear() não foi chamado após InsertChart()Limpe a série padrão gerada antes de chamar chart.Series.Add()

FAQ

Por que os números de página no meu índice aparecem como 0?

Esta edição FOSS não inclui o subsistema de layout de página e renderização, portanto qualquer valor de campo que dependa do layout da página — incluindo números de página — avalia-se como um placeholder 0 em vez de um valor calculado.

Posso exportar um documento para PDF ou um formato de imagem?

Não nesta edição. A exportação para PDF, XPS e imagem depende do mesmo subsistema de renderização que foi removido para manter esta edição gratuita. Use o Aspose.Words comercial para .NET para essas saídas.

Posso criar uma nova assinatura digital em um documento?

Não — esta edição pode verificar assinaturas digitais existentes, mas não pode criar novas.

Quais tipos de gráfico InsertChart() suporta?

InsertChart() recebe um valor ChartType — o enum abrange famílias padrão de gráficos, como linha, coluna, barra, pizza, área, rosquinha, radar, dispersão, ações e superfície, incluindo suas variantes empilhadas e 3D.

API Reference Resumo

Classe / PropriedadeDescrição
DocumentObjeto raiz do documento; Save() grava em DOCX, Markdown ou texto simples
DocumentBuilderCursor de alto nível API; InsertChart() adiciona uma forma de gráfico
ShapeObjeto de desenho retornado por InsertChart(); expõe a propriedade Chart
ChartObjeto de gráfico; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionDados da série (Add, Clear) e configurações por série
ChartDataPoint / ChartDataPointCollectionFormatação por ponto; ClearFormat()
ChartMarker / MarkerSymbolFormato e tamanho do marcador de ponto de dados
ChartDataLabel / ChartDataLabelCollectionConfigurações de exibição de rótulo por rótulo e para toda a coleção
ChartAxisTitleTexto do título exibido em Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLegenda do gráfico e suas entradas por série
ChartDataTableTabela de dados exibida abaixo do gráfico
Font / FillFormatação de texto e preenchimento (cor sólida, gradiente) nos elementos de texto do gráfico

Ver também

 Português