Fonctionnalités et capacités

Fonctionnalités et capacités

Fonctionnalités et capacités

Cette page couvre les capacités de création de graphiques de Aspose.Words FOSS pour .NET avec des exemples fonctionnels de C#, construits autour DocumentBuilder.InsertChart() et le Chart modèle d’objet. Le modèle complet d’objet de document de la bibliothèque (paragraphes, tableaux, styles, signets, sections) est décrit dans la présentation du produit et dans le Quickstart guide.


Créer un document avec un graphique

Insérez une forme de graphique avec DocumentBuilder.InsertChart(), puis accédez à son objet Chart via le Shape retourné. Effacez la série générée par défaut avant d’ajouter les données réelles:

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 graphiques, points de données et marqueurs

Chart.Series est un ChartSeriesCollection. Chaque ChartSeries expose ses points de données individuels via DataPoints, ce qui vous permet de personnaliser le marqueur ou le format d’un seul point sans affecter le reste de la 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();

Étiquettes de données du graphique

ChartSeries.DataLabels est un ChartDataLabelCollection qui contrôle les libellés pour chaque point de la série en même temps. Indexez-le avec DataLabels[i] pour remplacer un ChartDataLabel individuel:

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;

Titres des axes du graphique

Chart.AxisX et Chart.AxisY exposent chacun un ChartAxisTitle via leur propriété 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";

Légende du graphique et polices

Chart.Legend expose LegendEntries, un ChartLegendEntry par série, chacun avec son propre Font. Font implémente le format de remplissage, ainsi Font.Fill.Solid() définit une couleur de texte solide de la même façon qu’il le ferait pour toute autre séquence formatée:

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;

Tableau de données du graphique

Chart.DataTable est un ChartDataTable qui affiche les valeurs sous-jacentes de la série sous le graphique. Ses propriétés Has*Border et HasLegendKeys contrôlent quelles parties sont 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");

Conseils et bonnes pratiques

  • DocumentBuilder.InsertChart() remplit le nouveau graphique avec une série générée par défaut — appelez chart.Series.Clear() avant d’ajouter vos propres données, sinon les valeurs par défaut restent à côté.
  • Utilisez ChartSeries.DataLabels[i] pour cibler une étiquette de données lorsqu’un petit nombre de points nécessite un formatage personnalisé; utilisez les propriétés au niveau de la collection (DataLabels.ShowValue, et similaires) pour définir une valeur par défaut pour chaque étiquette de la série en une fois.
  • ClearFormat() est disponible à la fois sur ChartDataPoint et ChartDataLabelCollection — il réinitialise le formatage direct à ce que la série hérite par défaut.
  • Le moteur d’évaluation des champs met à jour les champs de contenu tels que DATE et DOCPROPERTY de façon programmatique, mais les champs qui dépendent de la mise en page (numéros de page dans une table des matières, NUMPAGES) évaluent à des valeurs de substitut 0 parce que cette édition n’inclut pas le moteur de mise en page.
  • Voir le Guide d’installation pour ajouter le paquet via NuGet, ou le compiler à partir du code source, avant de référencer ces API.

Problèmes courants

ProblèmeCauseCorrection
Les numéros de page ou les entrées du TOC affichent 0Cette édition n’inclut pas le moteur de mise en page/renduComportement attendu — les valeurs des champs dépendant de la mise en page ne sont pas calculées ; utilisez la version commerciale Aspose.Words pour .NET si vous en avez besoin
Document.Save() vers .pdf, .xps, ou une extension d’image échoueLes formats de rendu ne sont pas inclus dans cette éditionEnregistrez au format DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown ou texte brut à la place
Le chargement d’un fichier .doc, .rtf, .odt, .html ou .epub échoueSeuls les formats DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown et texte brut sont pris en charge pour le chargement/enregistrementConvertissez d’abord le fichier source en DOCX, ou utilisez l’édition commerciale
La série de graphique par défaut apparaît toujours après l’ajout de données personnaliséeschart.Series.Clear() n’a pas été appelé après InsertChart()Effacez la série générée par défaut avant d’appeler chart.Series.Add()

FAQ

Pourquoi les numéros de page dans ma table des matières apparaissent-ils à 0?

Cette édition FOSS n’inclut pas le sous-système de mise en page et de rendu, de sorte que toute valeur de champ dépendant de la mise en page — y compris les numéros de page — est évaluée à un espace réservé 0 au lieu d’une valeur calculée.

Puis-je exporter un document au format PDF ou image?

Pas dans cette édition. L’exportation PDF, XPS et image dépend du même sous-système de rendu qui a été supprimé pour garder cette édition gratuite. Utilisez le Aspose.Words commercial pour .NET pour ces sorties.

Puis-je créer une nouvelle signature numérique sur un document?

Non — cette édition peut vérifier les signatures numériques existantes mais ne peut pas en créer de nouvelles.

Quels types de graphiques InsertChart() prend en charge?

InsertChart() prend une valeur ChartType — l’énumération couvre les familles de graphiques standard telles que ligne, colonne, barre, secteur, aires, beignet, radar, dispersion, actions et surfaces, y compris leurs variantes empilées et 3D.

API Reference Résumé

Classe / PropriétéDescription
DocumentObjet racine du document ; Save() écrit en DOCX, Markdown ou texte brut
DocumentBuilderCurseur de haut niveau API ; InsertChart() ajoute une forme de graphique
ShapeObjet de dessin retourné par InsertChart(); expose la propriété Chart
ChartObjet de graphique; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionDonnées de séries (Add, Clear) et paramètres par série
ChartDataPoint / ChartDataPointCollectionMise en forme par point; ClearFormat()
ChartMarker / MarkerSymbolForme et taille du marqueur de point de données
ChartDataLabel / ChartDataLabelCollectionParamètres d’affichage des étiquettes par étiquette et à l’échelle de la collection
ChartAxisTitleTexte du titre affiché sur Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLégende du graphique et ses entrées par série
ChartDataTableTableau de données affiché sous le graphique
Font / FillMise en forme du texte et remplissage (couleur unie, dégradé) des éléments texte du graphique

Voir aussi

 Français