OUTILS EXCEL

Comment visualiser des fichiers Powerpoint en C#

Publié avril 3, 2024
Partager:

Introduction

Dans le domaine du développement de logiciels, offrir des expériences riches et captivantes aux utilisateurs nécessite la capacité d'incorporer de nombreux types de médias dans les programmes. Les présentations PowerPoint de Microsoft Office étant fréquemment utilisées pour communiquer des informations, il est avantageux d'incorporer un contrôle de visualisation PowerPoint dans un programme WinForms C#. Cet article explique comment intégrer ce type de contrôle, permettant aux développeurs d'ajouter des fonctions de visualisation de PowerPoint à leurs applications et de les améliorer. Dans cet article, nous allons créer la visionneuse PowerPoint C# sans installer la visionneuse MS PowerPoint.

Comment visualiser des fichiers Powerpoint dans C# ;

  1. Créer l'instance de l'application PowerPoint.

  2. Ajouter la référence Interop au projet

  3. Ouvrir la présentation en utilisant l'instance.

  4. Vérifiez et créez un dossier de sortie pour les fichiers d'exportation.

  5. Chargez les images des diapositives créées dans la boîte à images. Utilisez le bouton pour passer d'une diapositive à l'autre.

  6. Fermez la présentation et quittez l'application.

Comprendre le contrôle de visualisation PowerPoint

Les présentations PowerPoint sont largement utilisées dans de nombreux domaines, notamment l'éducation et les affaires. L'intégration d'un contrôle de visualisation PowerPoint dans une application WinForms présente plusieurs avantages.

  • Intégration en douceur : En permettant aux utilisateurs de voir et d'interagir avec des présentations PowerPoint directement dans l'application, les utilisateurs peuvent réduire le temps passé à passer d'un programme à l'autre et rationaliser leur flux de travail.
  • Expérience utilisateur améliorée : Le programme améliore l'expérience et l'efficacité de l'utilisateur en offrant une interface reconnaissable pour travailler avec des diapositives PowerPoint.
  • Flexibilité accrue : Pour les développeurs Windows dans les applications .NET, en ajoutant des contrôles de navigation ou en introduisant des modes d'affichage, les développeurs peuvent adapter le contrôle du visualiseur pour répondre à des besoins uniques.

Ajout de références

Ajoutez d'abord des références aux assemblages nécessaires : Pour ajouter des références Microsoft.Office.Interop.PowerPoint dans votre projet, faites un clic droit sur le projet dans Visual Studio, choisissez "Ajouter" > "Référence", puis ajoutez-les à partir de l'onglet COM.

Visionneuse PowerPoint

LesMicrosoft.Office.Interop.PowerPoint propose des classes et des méthodes pour interagir de manière programmatique avec les présentations PowerPoint. Assurez-vous que PowerPoint est installé sur le système. Décortiquons et expliquons le code suivant donné dans l'exemple précédent :

using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
    public partial class PowerPointViewer : Form
    {
        private Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();
        private Presentation pptPresentation;
        private string outputFolder = @"output_images";
        private int slideIndex = 1;
        public PowerPointViewer()
        {
            InitializeComponent();
        }
        private void DisplaySlide()
        {
            if (!Directory.Exists(outputFolder))
                Directory.CreateDirectory(outputFolder);
            // Export the slide as an png file
            string tempHtmlFile = Path.Combine(outputFolder, "temp.png");
            pptPresentation.Slides [slideIndex].Export(tempHtmlFile, "png", 1024, 768);
            // Load the HTML file into the picture box control
            pictureBox1.ImageLocation = tempHtmlFile;
        }
        private void Next_Click(object sender, EventArgs e)
        {
            int currentSlideIndex = slideIndex;
            if (currentSlideIndex < pptPresentation.Slides.Count)
            {
                slideIndex = slideIndex + 1;
                DisplaySlide();
            }
        }
        private void PowerPointViewercs_Load(object sender, EventArgs e)
        {
            // Load PowerPoint Presentation
            string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
            pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        // Load PowerPoint files here
            DisplaySlide();
        }
        private void Previous_Click(object sender, EventArgs e)
        {
            int currentSlideIndex = slideIndex;
            if (currentSlideIndex > 1)
            {
                slideIndex = slideIndex - 1;
                DisplaySlide();
            }
        }
        private void PowerPointViewercs_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Close the PowerPoint presentation and quit the application when the form is closing
            pptPresentation.Close();
            pptApplication.Quit();
        }
    }
}
using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataTableWindowsForm
{
    public partial class PowerPointViewer : Form
    {
        private Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();
        private Presentation pptPresentation;
        private string outputFolder = @"output_images";
        private int slideIndex = 1;
        public PowerPointViewer()
        {
            InitializeComponent();
        }
        private void DisplaySlide()
        {
            if (!Directory.Exists(outputFolder))
                Directory.CreateDirectory(outputFolder);
            // Export the slide as an png file
            string tempHtmlFile = Path.Combine(outputFolder, "temp.png");
            pptPresentation.Slides [slideIndex].Export(tempHtmlFile, "png", 1024, 768);
            // Load the HTML file into the picture box control
            pictureBox1.ImageLocation = tempHtmlFile;
        }
        private void Next_Click(object sender, EventArgs e)
        {
            int currentSlideIndex = slideIndex;
            if (currentSlideIndex < pptPresentation.Slides.Count)
            {
                slideIndex = slideIndex + 1;
                DisplaySlide();
            }
        }
        private void PowerPointViewercs_Load(object sender, EventArgs e)
        {
            // Load PowerPoint Presentation
            string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
            pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        // Load PowerPoint files here
            DisplaySlide();
        }
        private void Previous_Click(object sender, EventArgs e)
        {
            int currentSlideIndex = slideIndex;
            if (currentSlideIndex > 1)
            {
                slideIndex = slideIndex - 1;
                DisplaySlide();
            }
        }
        private void PowerPointViewercs_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Close the PowerPoint presentation and quit the application when the form is closing
            pptPresentation.Close();
            pptApplication.Quit();
        }
    }
}
Imports Microsoft.Office.Core
Imports Microsoft.Office.Interop.PowerPoint
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Forms
Namespace DataTableWindowsForm
	Partial Public Class PowerPointViewer
		Inherits Form

		Private pptApplication As New Microsoft.Office.Interop.PowerPoint.Application()
		Private pptPresentation As Presentation
		Private outputFolder As String = "output_images"
		Private slideIndex As Integer = 1
		Public Sub New()
			InitializeComponent()
		End Sub
		Private Sub DisplaySlide()
			If Not Directory.Exists(outputFolder) Then
				Directory.CreateDirectory(outputFolder)
			End If
			' Export the slide as an png file
			Dim tempHtmlFile As String = Path.Combine(outputFolder, "temp.png")
			pptPresentation.Slides (slideIndex).Export(tempHtmlFile, "png", 1024, 768)
			' Load the HTML file into the picture box control
			pictureBox1.ImageLocation = tempHtmlFile
		End Sub
		Private Sub Next_Click(ByVal sender As Object, ByVal e As EventArgs)
			Dim currentSlideIndex As Integer = slideIndex
			If currentSlideIndex < pptPresentation.Slides.Count Then
				slideIndex = slideIndex + 1
				DisplaySlide()
			End If
		End Sub
		Private Sub PowerPointViewercs_Load(ByVal sender As Object, ByVal e As EventArgs)
			' Load PowerPoint Presentation
			Dim pptFilePath As String = "demo.pptx" ' Path to your PowerPoint file
			pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse)
		' Load PowerPoint files here
			DisplaySlide()
		End Sub
		Private Sub Previous_Click(ByVal sender As Object, ByVal e As EventArgs)
			Dim currentSlideIndex As Integer = slideIndex
			If currentSlideIndex > 1 Then
				slideIndex = slideIndex - 1
				DisplaySlide()
			End If
		End Sub
		Private Sub PowerPointViewercs_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
			' Close the PowerPoint presentation and quit the application when the form is closing
			pptPresentation.Close()
			pptApplication.Quit()
		End Sub
	End Class
End Namespace
VB   C#

Tout d'abord, nous importons les espaces de noms nécessaires. Les opérations sur les fichiers sont gérées par System.IO, System.Windows.Forms offre des fonctionnalités WinForms, tandis que les classes Microsoft.Office permettant d'interagir avec PowerPoint sont incluses dans PowerPoint. Dans l'espace de noms PowerPointViewerApp, nous définissons une classe WinForms Form appelée PowerPointViewer. L'interface utilisateur principale de l'application view PPT sera ce formulaire.

Il est annoncé que les références à l'application et à la présentation PowerPoint seront stockées dans deux champs privés, pptApplication et pptPresentation. En utilisant InitializeComponent(), le constructeur met en place les composants visuels du formulaire qui ont été définis par le concepteur et initialise le formulaire. Au chargement du formulaire, la fonction InitializeComponent() est appelée. L'application PowerPoint(pptApplication) est initialisé et rendu accessible à ce stade.

Ensuite, nous lançons le fichier PowerPoint que pptFilePath spécifie. En utilisant pptApplication.Presentations, nous ouvrons le fichier PowerPoint en indiquant son chemin d'accès(pptFilePath) à la Ouverture() fonction. La procédure renvoie un objet Présentation, qui représente la présentation ouverte.

Pour afficher la première diapositive de la présentation PowerPoint, nous utilisons la fonction DisplaySlide() fonction. L'index de la première diapositive est 1. La diapositive affichée dans la boîte à images est le résultat de cette fonction. Nous utilisons la fonction Export() Cette fonction permet d'exporter la diapositive sélectionnée sous la forme d'un fichier PNG. Le fichier PNG exporté est momentanément stocké dans le dossier temporaire du système. Utilisation de ImageLocation(), nous chargeons le fichier PNG exporté dans le contrôle PictureBox. Ces techniques permettent de passer d'une diapositive à l'autre.

Les boutons de navigation btnPrevious_Click et btnNext_Click permettent d'accéder respectivement aux diapositives précédentes et suivantes. En utilisant pptPresentation, nous pouvons obtenir l'index de la diapositive dans la variable slideIndex. Nous appelons DisplaySlide (affichage de diapositives)() avec l'index de la diapositive précédente ou suivante, respectivement, si l'index de la diapositive en cours est compris entre 1 et le nombre total de diapositives.

Lorsque le formulaire se ferme, la fonction Close() est appelée. Ici, nous nous assurons que la gestion des ressources se fait correctement en libérant les ressources du système en quittant le programme PowerPoint et en terminant l'application PowerPoint à l'aide de la commande Quit() méthode.

Fichier PowerPoint

Comment visualiser des fichiers Powerpoint en C# : Figure 1 - Fichier PowerPoint demo.pptx

Sortie : Visionneuse PowerPoint

Comment visualiser des fichiers Powerpoint en C# : Figure 2 - PowerPointViwercs

IronXL

La manipulation de fichiers Excel en C# est facilitée par la célèbre bibliothèque Excel .NETIronXL. Il s'agit d'un outil polyvalent adapté à une grande variété d'applications grâce à son vaste ensemble de fonctionnalités permettant de lire, de générer et de modifier des fichiers Excel.

Ci-dessous, je vais passer en revue quelques-uns des principaux attributs d'IronXL :

Accès facile et rapidité

  • Avec IronXL, les développeurs peuvent lire les données des fichiers Excel actuels et écrire rapidement des données dans des fichiers Excel nouveaux ou existants. Il s'agit d'accéder aux propriétés du classeur et de la feuille de calcul, telles que les valeurs des cellules, les formules et le formatage.

Support Excel étendu

  • Les développeurs peuvent importer des données provenant de bases de données et de fichiers CSV, entre autres sources, dans des feuilles de calcul Excel en utilisant IronXL. De même, les données des fichiers Excel peuvent être exportées dans différents formats, notamment CSV, HTML, XML et PDF.

Flexibilité

  • Avec IronXL, les développeurs peuvent ajouter, modifier et supprimer dynamiquement des feuilles de calcul dans les fichiers Excel. Cela permet une flexibilité dans le format et l'organisation des données en fonction des exigences de l'application.

Des modifications précises

  • Les feuilles de calcul Excel peuvent voir leurs cellules individuelles modifiées avec précision grâce à IronXL. Les développeurs peuvent définir les valeurs des cellules, les formules, les styles, le formatage et d'autres caractéristiques par programme.

    Pour en savoir plus sur la documentation, voirici.

Installer IronXL

Avant de poursuivre, installons d'abordIronXL à l'aide de la console NuGet Package Manager :

Install-Package IronXL.Excel

IronXL peut être utilisé dans notre projet C# après l'installation.

Utilisation d'IronXL pour les opérations Excel

Examinons un scénario hypothétique dans lequel nous voulons lire les données d'un fichier Excel à l'aide d'IronXL. Voici un petit exemple de la manière de procéder :

using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets [0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets [0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Path to the Excel file
		Dim excelFilePath As String = "sample.xlsx"
		' Load the Excel file
		Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
		' Access the first worksheet
		Dim worksheet As WorkSheet = workbook.WorkSheets (0)
		' Iterate through rows and columns to read data
		For Each row In worksheet.Rows
			For Each cell In row
				Console.Write(cell.Value & vbTab)
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
VB   C#

Nous commençons par ajouter les espaces de noms nécessaires. L'espace de noms IronXL contient les classes et les méthodes fournies par la bibliothèque IronXL. Le chemin d'accès à sample.xlsx, le fichier Excel que nous voulons lire, est indiqué. En utilisant WorkBook, le fichier Excel est chargé. L'objet Workbook fourni par la commande Load() représente le classeur Excel. Nous pouvons accéder à la première feuille de travail du classeur en utilisant workbook.WorkSheets[0]. Nous passons en revue les lignes et les colonnes de la feuille de calcul en empilant les boucles. Nous envoyons la valeur de chaque cellule à la console.

Comment visualiser des fichiers Powerpoint en C# : Figure 3 - Sortie IronXL

Pour en savoir plus sur les exemples de code IronXL, reportez-vous à la rubriqueici.

Conclusion

Plusieurs applications logicielles nécessitent la conversion de présentations PowerPoint en images à l'aide de C#. Le processus peut se terminer assez rapidement, que l'espace de noms Microsoft.Office.Interop.PowerPoint soit utilisé ou non. Vous pouvez facilement intégrer la conversion de PowerPoint en images dans vos programmes C# à l'aide des exemples de code de cet article, ouvrant ainsi un monde de possibilités pour la modification et la diffusion d'informations.

IronXL offre une méthode simple et efficace pour effectuer des opérations Excel en C# sans nécessiter l'installation d'Excel sur le système cible ni dépendre de la bibliothèque Interop. Grâce à son ensemble complet de fonctionnalités et à son API conviviale, IronXL est un outil pratique pour les développeurs qui travaillent avec des données Excel dans des applications C#. Il simplifie les tâches telles que la lecture, l'écriture et l'édition de fichiers Excel. Pour les projets de développement liés à Excel, IronXL offre une solution stable qui stimule la productivité et la flexibilité, qu'il s'agisse de traiter des données, de produire des rapports ou d'automatiser des tâches de feuille de calcul.

Une édition communautaire gratuite avec des restrictions pour un usage non commercial a été mise à disposition par IronXL. Les versions payantes commencent à $749 et peuvent être obtenues par abonnement ou sur la base d'une licence perpétuellerégimes d'autorisation. Ils sont plus complets et offrent plus de fonctionnalités et d'assistance. IronXL offre également unelicence d'essai gratuite. Pour obtenir des informations complètes et actualisées sur l'octroi de licences, veuillez consulter le site web de la Commission européennepage de licence. Visiter ce sitesite web pour en savoir plus sur les produits d'Iron Software.

SUIVANT >
Comment utiliser Créer une présentation PowerPoint à partir d'un modèle en C#