Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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.
Créer l'instance de l'application PowerPoint.
Ajouter la référence Interop au projet
Ouvrir la présentation en utilisant l'instance.
Vérifiez et créez un dossier de sortie pour les fichiers d'exportation.
Chargez les images des diapositives créées dans la boîte à images. Utilisez le bouton pour passer d'une diapositive à l'autre.
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.
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.
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
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.
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 :
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.
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.
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
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.
Pour en savoir plus sur les exemples de code IronXL, reportez-vous à la rubriqueici.
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.
9 produits de l'API .NET pour vos documents de bureau