Créer des présentations PowerPoint C#

Les présentations MS PowerPoint vous permettent de créer des diaporamas contenant du texte, des images, des graphiques, des animations et d’autres éléments. Diverses options de formatage supplémentaires vous permettent de rendre vos présentations plus attrayantes. Dans cet article, vous apprendrez à créer de telles présentations par programmation. Vous apprendrez à créer des présentations PPTX contenant du texte, des tableaux, des images et des graphiques à l’aide de C#.

API C# PowerPoint - Télécharger gratuit

Aspose.Slides for .NET est une API de manipulation de présentation qui vous permet de créer et de manipuler des documents PowerPoint à partir de vos applications .NET. L’API fournit presque toutes les fonctionnalités possibles requises pour implémenter des fonctionnalités d’automatisation PowerPoint de base et avancées. Vous pouvez soit télécharger l’API ou l’installer via NuGet.

Install-Package Aspose.Slides.NET

Créer une présentation PowerPoint en C#

Commençons par créer une présentation PowerPoint vide à l’aide de Aspose.Slides for .NET. Voici les étapes à suivre.

L’exemple de code suivant montre comment créer une présentation PowerPoint en C#.

// Instancier un objet Presentation qui représente un fichier de présentation
using (Presentation presentation = new Presentation())
{
    // Obtenir la première diapositive
    ISlide slide = presentation.Slides[0];

    // Ajouter du contenu à la diapositive...
    
    // Enregistrer la présentation
    presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}

Ouvrir une présentation PowerPoint existante en C#

Vous n’avez pas besoin de déployer des efforts supplémentaires pour ouvrir une présentation PowerPoint existante. Fournissez simplement le chemin du fichier PPTX au constructeur de la classe Presentation et vous avez terminé. L’exemple de code suivant montre comment ouvrir une présentation PPTX existante.

// Ouverture du fichier de présentation en transmettant le chemin du fichier au constructeur de la classe Presentation
Presentation pres = new Presentation("OpenPresentation.pptx");

// Impression du nombre total de diapositives de la présentation
System.Console.WriteLine(pres.Slides.Count.ToString());

Ajouter une diapositive à la présentation en C#

Une fois que vous avez créé la présentation, vous pouvez commencer à y ajouter les diapositives. Voici les étapes pour ajouter une diapositive dans la présentation à l’aide de Aspose.Slides for .NET.

L’exemple de code suivant montre comment ajouter une diapositive dans une présentation PowerPoint à l’aide de C#.

// Instancier la classe Presentation qui représente le fichier de présentation
using (Presentation pres = new Presentation())
{
    // Instancier la classe SlideCollection
    ISlideCollection slds = pres.Slides;

    for (int i = 0; i < pres.LayoutSlides.Count; i++)
    {
        // Ajouter une diapositive vide à la collection Slides
        slds.AddEmptySlide(pres.LayoutSlides[i]);

    }

    // Enregistrez le fichier PPTX sur le disque
    pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);

}

Insérer du texte dans une diapositive à l’aide de C#

Nous pouvons maintenant ajouter du contenu aux diapositives de la présentation PowerPoint. Commençons par ajouter un morceau de texte à la diapositive en suivant les étapes suivantes.

  • Créez une nouvelle présentation à l’aide de la classe Presentation.
  • Obtenir la référence de la diapositive dans la présentation.
  • Ajoutez un IAutoShape avec ShapeType comme Rectangle à une position spécifiée de la diapositive.
  • Obtenez la référence de cet objet IAutoShape nouvellement ajouté.
  • Ajoutez un TextFrame à la forme automatique contenant le texte par défaut.
  • Enregistrez la présentation en tant que fichier PPTX.

L’exemple de code suivant montre comment ajouter du texte à une diapositive dans une présentation à l’aide de C#.

// Instancier PresentationEx// Instancier PresentationEx
using (Presentation pres = new Presentation())
{
    // Obtenir la première diapositive
    ISlide sld = pres.Slides[0];

    // Ajouter une forme automatique de type Rectangle
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // Ajouter TextFrame au rectangle
    ashp.AddTextFrame(" ");

    // Accéder au cadre de texte
    ITextFrame txtFrame = ashp.TextFrame;

    // Créer l'objet Paragraph pour le bloc de texte
    IParagraph para = txtFrame.Paragraphs[0];

    // Créer un objet Portion pour le paragraphe
    IPortion portion = para.Portions[0];

    // Définir le texte
    portion.Text = "Aspose TextBox";

    // Enregistrer la présentation sur disque
    pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Créer un tableau dans une présentation à l’aide de C#

Aspose.Slides for .NET fournit un moyen simple de créer un tableau dans le document de présentation. Voici les étapes pour cela.

  • Créez une instance de la classe Presentation.
  • Obtenir la référence d’une diapositive en utilisant son index.
  • Définissez des tableaux de colonnes avec une largeur et des lignes avec une hauteur.
  • Ajoutez un tableau à la diapositive à l’aide de la méthode Slide.Shapes.AddTable() exposée par l’objet IShapes et obtenez la référence au tableau dans l’instance ITable.
  • Parcourez chaque cellule pour appliquer la mise en forme.
  • Ajoutez du texte aux cellules à l’aide de la propriété Table.Rows[][].TextFrame.Text.
  • Enregistrez la présentation en tant que fichier PPTX.

L’exemple de code suivant montre comment créer un tableau dans une diapositive de présentation PowerPoint.

// Instancier la classe de présentation qui représente le fichier PPTX
Presentation pres = new Presentation();

// Accéder à la première diapositive
ISlide sld = pres.Slides[0];

// Définir des colonnes avec des largeurs et des lignes avec des hauteurs
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// Ajouter une forme de tableau à la diapositive
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// Définir le format de bordure pour chaque cellule
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;

		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
	}
}

// Fusionner les cellules 1 et 2 de la ligne 1
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);

// Ajouter du texte à la cellule fusionnée
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";

// Enregistrer PPTX sur le disque
pres.Save("table.pptx", SaveFormat.Pptx);

Créer un graphique dans une présentation à l’aide de C#

Voici les étapes pour ajouter un graphique dans une présentation PowerPoint à l’aide de C#.

  • Créez une instance de la classe Presentation.
  • Obtenir la référence d’une diapositive par index.
  • Ajoutez un graphique avec le type souhaité à l’aide de la méthode ISlide.Shapes.AddChart(ChartType, Single, Single, Single, Single).
  • Ajoutez un titre au graphique.
  • Accédez à la feuille de calcul des données du graphique.
  • Effacez toutes les séries et catégories par défaut.
  • Ajouter de nouvelles séries et catégories.
  • Ajoutez de nouvelles données de graphique pour les séries de graphiques.
  • Définissez la couleur de remplissage des séries de graphiques.
  • Ajoutez des étiquettes de série de graphiques.
  • Enregistrez la présentation en tant que fichier PPTX.

L’exemple de code suivant montre comment ajouter un graphique dans une présentation à l’aide de C#.

// Instancier la classe de présentation 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);

// Tableau de réglage Titre
// Chart.ChartTitle.TextFrameForOverriding.Text = "Titre de l'échantillon" ;
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Définir la première série sur Afficher les valeurs
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Définition de l'index de la feuille de données du graphique
int defaultWorksheetIndex = 0;

// Obtenir la feuille de calcul des 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;

// Ajout de nouvelles séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Ajout de nouvelles catégories
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Prendre la première série de graphiques
IChartSeries series = chart.ChartData.Series[0];

// Remplir maintenant 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éfinition de la couleur de remplissage pour les séries
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;


// Prendre la deuxième série de graphiques
series = chart.ChartData.Series[1];

// Remplir maintenant 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éfinition de la couleur de remplissage pour les séries
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;

// 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_out.pptx", SaveFormat.Pptx);

En savoir plus sur les grilles de présentation ici.

Ajouter une image dans la présentation

Voici les étapes pour ajouter des images dans la diapositive de présentation.

L’exemple de code suivant montre comment ajouter une image à une présentation en C#.

// Créer une présentation
using (var p = new Presentation())
{
	// Lire l'image
	var svgContent = File.ReadAllText("image.svg");
	
	// Ajouter une image à la collection d'images
	var emfImage = p.Images.AddFromSvg(svgContent);
	
	// Ajouter une image à la diapositive
	p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
	
	// Enregistrer la présentation
	p.Save("presentation.pptx", SaveFormat.Pptx);        
}

Conclusion

Dans cet article, vous avez appris à créer des présentations PowerPoint à partir de zéro à l’aide de C#. De plus, vous avez vu comment ajouter des diapositives, du texte, des tableaux, des images et des graphiques dans des présentations PPTX nouvelles ou existantes. Vous pouvez en savoir plus sur l’API en utilisant la documentation.

Voir également

Conseil : Outre la création de diapositives ou de présentations, Aspose.Slides fournit de nombreuses fonctionnalités qui vous permettent de travailler avec des présentations. Par exemple, en utilisant ses propres API, Aspose a développé une visionneuse en ligne gratuite pour les présentations Microsoft PowerPoint.