Comment créer des graphiques dans une présentation
Support pour le code hérité
Pour utiliser le code hérité développé avec les versions d’Aspose.Slides pour .NET antérieures à 13.x, vous devez apporter quelques modifications mineures dans votre code et le code fonctionnera comme auparavant. Toutes les classes présentes dans l’ancien Aspose.Slides pour .NET sous les espaces de noms Aspose.Slide et Aspose.Slides.Pptx sont maintenant fusionnées dans un seul espace de noms Aspose.Slides. Veuillez consulter le code simple suivant pour créer un graphique normal à partir de zéro dans une présentation en utilisant l’API Aspose.Slides héritée et suivre les étapes décrivant comment migrer vers la nouvelle API fusionnée.
Approche héritée d’Aspose.Slides pour .NET
//Instancier la classe PresentationEx qui représente le fichier PPTX
using (PresentationEx pres = new PresentationEx())
{
//Accéder à la première diapositive
SlideEx sld = pres.Slides[0];
// Ajouter un graphique avec des données par défaut
ChartEx chart = sld.Shapes.AddChart(ChartTypeEx.ClusteredColumn, 0, 0, 500, 500);
//Définir le titre du graphique
chart.ChartTitle.Text.Text = "Titre d'exemple";
chart.ChartTitle.Text.CenterText = true;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
//Définir la première série pour afficher les valeurs
chart.ChartData.Series[0].Labels.ShowValue = true;
//Définir l'index de la feuille de données du graphique
int defaultWorksheetIndex = 0;
//Obtenir la feuille de données du graphique
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;
//Supprimer les séries et catégories générées par défaut
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;
//Ajouter de nouvelles séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Série 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Série 2"), chart.Type);
//Ajouter de nouvelles catégories
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Catégorie 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Catégorie 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Catégorie 3"));
//Prendre la première série du graphique
ChartSeriesEx series = chart.ChartData.Series[0];
//Maintenant, peupler les données de la série
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));
//Définir la couleur de remplissage pour la série
series.Format.Fill.FillType = FillTypeEx.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;
//Prendre la deuxième série du graphique
series = chart.ChartData.Series[1];
//Maintenant, peupler les données de la série
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));
//Définir la couleur de remplissage pour la série
series.Format.Fill.FillType = FillTypeEx.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;
//créer des étiquettes personnalisées pour chacune des catégories pour la nouvelle série
//la première étiquette affichera le nom de la catégorie
DataLabelEx lbl = new DataLabelEx(series);
lbl.ShowCategoryName = true;
lbl.Id = 0;
series.Labels.Add(lbl);
//Afficher le nom de la série pour la deuxième étiquette
lbl = new DataLabelEx(series);
lbl.ShowSeriesName = true;
lbl.Id = 1;
series.Labels.Add(lbl);
//Afficher la valeur pour la troisième étiquette
lbl = new DataLabelEx(series);
lbl.ShowValue = true;
lbl.ShowSeriesName = true;
lbl.Separator = "/";
lbl.Id = 2;
series.Labels.Add(lbl);
//Afficher la valeur et le texte personnalisé
lbl = new DataLabelEx(series);
lbl.TextFrame.Text = "Mon texte";
lbl.Id = 3;
series.Labels.Add(lbl);
//Enregistrer la présentation avec le graphique
pres.Write(@"D:\AsposeChart.pptx");
}
Nouvelle approche d’Aspose.Slides pour .NET 13.x
//Instancier la classe Presentation qui représente le fichier PPTX
Presentation pres = new Presentation();
//Accéder à la première diapositive
ISlide sld = pres.Slides[0];
// Ajouter un graphique avec des données par défaut
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
//Définir le titre du graphique
//chart.ChartTitle.TextFrameForOverriding.Text = "Titre d'exemple";
chart.ChartTitle.AddTextFrameForOverriding("Titre d'exemple");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
//Définir la première série pour afficher les valeurs
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;
//Définir l'index de la feuille de données du graphique
int defaultWorksheetIndex = 0;
//Obtenir la feuille de données du graphique
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
//Supprimer les séries et catégories générées par défaut
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;
//Ajouter de nouvelles séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Série 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Série 2"), chart.Type);
//Ajouter de nouvelles catégories
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Catégorie 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Catégorie 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Catégorie 3"));
//Prendre la première série du graphique
IChartSeries series = chart.ChartData.Series[0];
//Maintenant, peupler les données de la série
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));
//Définir la couleur de remplissage pour la série
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;
//Prendre la deuxième série du graphique
series = chart.ChartData.Series[1];
//Maintenant, peupler les données de la série
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));
//Définir la couleur de remplissage pour la série
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;
//créer des étiquettes personnalisées pour chaque catégorie pour la nouvelle série
//la première étiquette affichera le nom de la catégorie
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;
lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;
//Afficher la valeur pour la troisième étiquette
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";
//Enregistrer la présentation avec le graphique
pres.Save("AsposeChart.pptx", SaveFormat.Pptx);
Veuillez consulter le code simple suivant pour créer un graphique dispersé à partir de zéro dans une présentation en utilisant l’API Aspose.Slides héritée et comment y parvenir avec la nouvelle API fusionnée.
Approche héritée d’Aspose.Slides pour .NET
using (PresentationEx pres = new PresentationEx())
{
SlideEx slide = pres.Slides[0];
//Création du graphique par défaut
ChartEx chart = slide.Shapes.AddChart(ChartTypeEx.ScatterWithSmoothLines, 0, 0, 400, 400);
//Obtenir l'index de feuille de données du graphique par défaut
int defaultWorksheetIndex = 0;
//Accéder à la feuille de données du graphique
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;
//Supprimer les séries de démonstration
chart.ChartData.Series.Clear();
//Ajouter de nouvelles séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Série 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Série 2"), chart.Type);
//Prendre la première série du graphique
ChartSeriesEx series = chart.ChartData.Series[0];
//Ajouter un nouveau point (1:3) là-bas.
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 2, 1, 1));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 2, 2, 3));
//Ajouter un nouveau point (2:10)
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 3, 1, 2));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 3, 2, 10));
//Modifier le type de la série
series.Type = ChartTypeEx.ScatterWithStraightLinesAndMarkers;
//Changer le marqueur de la série de graphique
series.MarkerSize = 10;
series.MarkerSymbol = MarkerStyleTypeEx.Star;
//Prendre la deuxième série du graphique
series = chart.ChartData.Series[1];
//Ajouter un nouveau point (5:2) là-bas.
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 2, 3, 5));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 2, 4, 2));
//Ajouter un nouveau point (3:1)
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 3, 3, 3));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 3, 4, 1));
//Ajouter un nouveau point (2:2)
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 4, 3, 2));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 4, 4, 2));
//Ajouter un nouveau point (5:1)
series.XValues.Add(fact.GetCell(defaultWorksheetIndex, 5, 3, 5));
series.YValues.Add(fact.GetCell(defaultWorksheetIndex, 5, 4, 1));
//Changer le marqueur de la série de graphique
series.MarkerSize = 10;
series.MarkerSymbol = MarkerStyleTypeEx.Circle;
pres.Write("D:\\AsposeSeriesChart.pptx");
}
Nouvelle approche d’Aspose.Slides pour .NET 13.x
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
//Création du graphique par défaut
IChart chart = slide.Shapes.AddChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
//Obtenir l'index de feuille de données du graphique par défaut
int defaultWorksheetIndex = 0;
//Accéder à la feuille de données du graphique
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
//Supprimer les séries de démonstration
chart.ChartData.Series.Clear();
//Ajouter de nouvelles séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, "Série 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, "Série 2"), chart.Type);
//Prendre la première série du graphique
IChartSeries series = chart.ChartData.Series[0];
//Ajouter un nouveau point (1:3) là-bas.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 1), fact.GetCell(defaultWorksheetIndex, 2, 2, 3));
//Ajouter un nouveau point (2:10)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 2), fact.GetCell(defaultWorksheetIndex, 3, 2, 10));
//Modifier le type de la série
series.Type = ChartType.ScatterWithStraightLinesAndMarkers;
//Changer le marqueur de la série de graphique
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyleType.Star;
//Prendre la deuxième série du graphique
series = chart.ChartData.Series[1];
//Ajouter un nouveau point (5:2) là-bas.
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 2, 3, 5), fact.GetCell(defaultWorksheetIndex, 2, 4, 2));
//Ajouter un nouveau point (3:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 3, 3, 3), fact.GetCell(defaultWorksheetIndex, 3, 4, 1));
//Ajouter un nouveau point (2:2)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 4, 3, 2), fact.GetCell(defaultWorksheetIndex, 4, 4, 2));
//Ajouter un nouveau point (5:1)
series.DataPoints.AddDataPointForScatterSeries(fact.GetCell(defaultWorksheetIndex, 5, 3, 5), fact.GetCell(defaultWorksheetIndex, 5, 4, 1));
//Changer le marqueur de la série de graphique
series.Marker.Size = 10;
series.Marker.Symbol = MarkerStyle.Circle;
pres.Save("AsposeScatterChart.pptx", SaveFormat.Pptx);