Características y Funcionalidades

Características y Funcionalidades

Características y Funcionalidades

Esta página cubre las capacidades de creación de gráficos de Aspose.Words FOSS para .NET con ejemplos funcionales de C#, construidos alrededor de DocumentBuilder.InsertChart() y el Chart modelo de objetos. El modelo completo de objetos del documento de la biblioteca (párrafos, tablas, estilos, marcadores, secciones) se describe en la visión general del producto y en el Quickstart guía.


Creando un Documento con un Gráfico

Inserte una forma de gráfico con DocumentBuilder.InsertChart(), luego acceda a su objeto Chart a través del Shape devuelto. Elimine la serie generada por defecto antes de añadir datos reales:

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

Series de Gráficos, Puntos de Datos y Marcadores

Chart.Series es un ChartSeriesCollection. Cada ChartSeries expone sus puntos de datos individuales a través de DataPoints, lo que le permite personalizar el marcador o formato de un solo punto sin afectar al resto de la serie:

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

Etiquetas de Datos del Gráfico

ChartSeries.DataLabels es un ChartDataLabelCollection que controla las etiquetas de cada punto de la serie a la vez. Indexa en él con DataLabels[i] para sobrescribir un 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 de los ejes del gráfico

Chart.AxisX y Chart.AxisY cada uno exponen un ChartAxisTitle a través de su propiedad 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";

Leyenda del gráfico y fuentes

Chart.Legend expone LegendEntries, un ChartLegendEntry por serie, cada uno con su propio Font. Font implementa el formato de relleno, por lo que Font.Fill.Solid() establece un color de texto sólido de la misma manera que lo haría en cualquier otro fragmento formateado:

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;

Tabla de datos del gráfico

Chart.DataTable es un ChartDataTable que muestra los valores subyacentes de la serie debajo del gráfico. Sus propiedades Has*Border y HasLegendKeys controlan qué partes son visibles:

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

Consejos y mejores prácticas

  • DocumentBuilder.InsertChart() rellena el nuevo gráfico con una serie generada por defecto — llame a chart.Series.Clear() antes de agregar sus propios datos, o los valores predeterminados permanecerán junto a ella.
  • Utilice ChartSeries.DataLabels[i] para dirigirse a una etiqueta de datos cuando solo algunos puntos necesiten formato personalizado; use las propiedades a nivel de colección (DataLabels.ShowValue, y similares) para establecer un valor predeterminado para cada etiqueta de la serie de una sola vez.
  • ClearFormat() está disponible tanto en ChartDataPoint como en ChartDataLabelCollection — restablece el formato directo a lo que la serie hereda por defecto.
  • El motor de evaluación de campos actualiza los campos de contenido como DATE y DOCPROPERTY de forma programática, pero los campos que dependen del diseño de página (números de página en un índice, NUMPAGES) se evalúan a valores de marcador de posición 0 porque esta edición no incluye el motor de diseño.
  • Consulte el Guía de instalación para agregar el paquete mediante NuGet, o compilar desde el código fuente, antes de referenciar estas APIs.

Problemas comunes

ProblemaCausaSolución
Los números de página o las entradas del índice muestran 0Esta edición no incluye el motor de maquetación/renderizado de páginaComportamiento esperado — los valores de los campos dependientes del diseño no se calculan; utilice la versión comercial Aspose.Words para .NET si los necesitas
Document.Save() a .pdf, .xps, o una extensión de imagen fallaLos formatos de renderizado no están incluidos en esta ediciónGuarda en DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown o texto plano en su lugar
Cargar un archivo .doc, .rtf, .odt, .html o .epub fallaSolo DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown y texto plano son compatibles para cargar/guardarConvierte el archivo fuente a DOCX primero, o usa la edición comercial
La serie de gráfico predeterminada aún aparece después de agregar datos personalizadoschart.Series.Clear() no se llamó después de InsertChart()Borre la serie generada por defecto antes de llamar a chart.Series.Add()

FAQ

¿Por qué los números de página en mi tabla de contenidos aparecen como 0?

Esta edición FOSS no incluye el subsistema de diseño de página y renderizado, por lo que cualquier valor de campo que dependa del diseño de página — incluidos los números de página — se evalúa a un marcador de posición 0 en lugar de un valor calculado.

¿Puedo exportar un documento a PDF o a un formato de imagen?

No en esta edición. La exportación a PDF, XPS y a imágenes depende del mismo subsistema de renderizado que se eliminó para mantener esta edición gratuita. Utilice el Aspose.Words comercial para .NET para esas salidas.

¿Puedo crear una nueva firma digital en un documento?

No — esta edición puede verificar firmas digitales existentes pero no puede crear nuevas.

¿Qué tipos de gráficos admite InsertChart()?

InsertChart() toma un valor ChartType — el enum cubre familias estándar de gráficos como línea, columna, barra, pastel, área, rosquilla, radar, dispersión, financiero y de superficie, incluidas sus variantes apiladas y 3D.

API Reference Resumen

Clase / PropiedadDescripción
DocumentObjeto raíz del documento; Save() escribe en DOCX, Markdown o texto plano
DocumentBuilderCursor de alto nivel API; InsertChart() agrega una forma de gráfico
ShapeObjeto de dibujo devuelto por InsertChart(); expone la propiedad Chart
ChartObjeto de gráfico; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionDatos de la serie (Add, Clear) y configuraciones por serie
ChartDataPoint / ChartDataPointCollectionFormato por punto; ClearFormat()
ChartMarker / MarkerSymbolForma y tamaño del marcador de punto de datos
ChartDataLabel / ChartDataLabelCollectionConfiguraciones de visualización de etiquetas por etiqueta y a nivel de toda la colección
ChartAxisTitleTexto del título mostrado en Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLeyenda del gráfico y sus entradas por serie
ChartDataTableTabla de datos mostrada debajo del gráfico
Font / FillFormato de texto y relleno (color sólido, degradado) en los elementos de texto del gráfico

Ver también

 Español