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 — appelezchart.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 surChartDataPointetChartDataLabelCollection— 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
DATEetDOCPROPERTYde 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 substitut0parce 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ème | Cause | Correction |
|---|---|---|
Les numéros de page ou les entrées du TOC affichent 0 | Cette édition n’inclut pas le moteur de mise en page/rendu | Comportement 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 échoue | Les formats de rendu ne sont pas inclus dans cette édition | Enregistrez 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 échoue | Seuls les formats DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown et texte brut sont pris en charge pour le chargement/enregistrement | Convertissez 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ées | chart.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 |
|---|---|
Document | Objet racine du document ; Save() écrit en DOCX, Markdown ou texte brut |
DocumentBuilder | Curseur de haut niveau API ; InsertChart() ajoute une forme de graphique |
Shape | Objet de dessin retourné par InsertChart(); expose la propriété Chart |
Chart | Objet de graphique; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Données de séries (Add, Clear) et paramètres par série |
ChartDataPoint / ChartDataPointCollection | Mise en forme par point; ClearFormat() |
ChartMarker / MarkerSymbol | Forme et taille du marqueur de point de données |
ChartDataLabel / ChartDataLabelCollection | Paramètres d’affichage des étiquettes par étiquette et à l’échelle de la collection |
ChartAxisTitle | Texte du titre affiché sur Chart.AxisX / Chart.AxisY |
ChartLegend / ChartLegendEntry | Légende du graphique et ses entrées par série |
ChartDataTable | Tableau de données affiché sous le graphique |
Font / Fill | Mise en forme du texte et remplissage (couleur unie, dégradé) des éléments texte du graphique |