HERRAMIENTAS EXCEL

Cómo ver archivos Powerpoint en C#

Publicado en 3 de abril, 2024
Compartir:

Introducción

En el campo del desarrollo de software, ofrecer experiencias de usuario ricas y cautivadoras requiere la capacidad de incorporar muchos tipos de medios a los programas. Dado que las presentaciones de Microsoft Office PowerPoint se utilizan con frecuencia para comunicar información, resulta ventajoso incorporar un control visor de PowerPoint en un programa C# WinForms. Este artículo explica cómo integrar un control de ese tipo, lo que permitirá a los desarrolladores añadir funciones de visualización de PowerPoint a sus aplicaciones y mejorarlas. En este artículo, vamos a crear C # PowerPoint Viewer sin necesidad de instalar MS PowerPoint Viewer.

Cómo ver archivos Powerpoint en C#

  1. Crear instancia de aplicación PowerPoint.

  2. Añada la referencia Interop al proyecto

  3. Abrir Presentación utilizando la Instancia.

  4. Marque y Cree una carpeta de salida para los archivos de exportación.

  5. Cargue las imágenes de las diapositivas creadas en el cuadro Imagen. Utilice el botón para desplazarse por las diapositivas.

  6. Cierre la presentación y salga de la aplicación.

Entender el Control Visor de PowerPoint

Las presentaciones de PowerPoint se utilizan mucho en diversos campos, como la educación y la empresa. Incorporar un control visor de PowerPoint a una aplicación WinForms tiene varias ventajas.

  • Integración fluida: Al permitir a los usuarios ver e interactuar con presentaciones de PowerPoint directamente dentro de la aplicación, los usuarios pueden reducir la cantidad de tiempo que pasan cambiando entre varios programas y agilizar su flujo de trabajo.
  • Experiencia de usuario mejorada: El programa mejora la experiencia del usuario y la eficiencia al ofrecer una interfaz reconocible para trabajar con diapositivas de PowerPoint.
  • Mayor flexibilidad: Para los desarrolladores de Windows en aplicaciones .NET, al añadir controles de navegación o introducir modos de visualización, los desarrolladores pueden adaptar el control del visor para satisfacer necesidades únicas.

Añadir referencias

Añade primero referencias a los ensamblados necesarios: Para añadir referencias Microsoft.Office.Interop.PowerPoint en el proyecto, haz clic con el botón derecho en el proyecto en Visual Studio, elige "Añadir" > "Referencia" y, a continuación, añádelas desde la pestaña COM.

Visor PowerPoint

EnMicrosoft.Office.Interop.PowerPoint ofrece clases y métodos para interactuar mediante programación con las presentaciones de PowerPoint. Asegúrese de que PowerPoint está instalado en el sistema. Vamos a diseccionar y explicar en el siguiente código dado en el ejemplo anterior:

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#

En primer lugar, importamos los espacios de nombres necesarios. Las operaciones de archivo son manejadas por System.IO, System.Windows.Forms ofrece características WinForms, mientras que las clases Microsoft.Office para interactuar con PowerPoint están incluidas en PowerPoint. Dentro del espacio de nombres PowerPointViewerApp, definimos una clase WinForms Form llamada PowerPointViewer. La interfaz de usuario principal de la aplicación view PPT será este formulario.

Se anuncia que las referencias a la aplicación PowerPoint y a la presentación se almacenarán en dos campos privados, pptApplication, y pptPresentation. Utilizando InitializeComponent(), el constructor configura los componentes visuales del formulario que fueron definidos por el diseñador e inicializa el formulario. Cuando se carga el formulario, el comando InitializeComponent() . La aplicación PowerPoint(pptAplicación) se inicializa y se hace accesible en este punto.

A continuación, lanzamos el archivo PowerPoint que pptFilePath especifica. Usando pptApplication.Presentations, abrimos el archivo PowerPoint proporcionando su ruta(pptFilePath) al Abierto() función. El procedimiento devuelve un objeto Presentación, que representa la presentación abierta.

Para mostrar la primera diapositiva de la presentación de PowerPoint, utilizamos la función DisplaySlide() función. El índice de la primera diapositiva es 1. La diapositiva que se muestra en el control Cuadro de imagen es el resultado de esta función. Utilizamos la función Exportar() para exportar la diapositiva seleccionada como archivo PNG. La carpeta temporal del sistema es donde se almacena momentáneamente el archivo PNG exportado. Uso de ImageLocation(), cargamos el archivo PNG exportado en el control PictureBox. Estas técnicas se encargan de pasar de una diapositiva a otra.

Los botones de navegación btnPrevious_Click y btnNext_Click te llevan a la diapositiva anterior y siguiente, respectivamente. Usando pptPresentation, podemos obtener el índice de la diapositiva en la variable slideIndex. Llamamos a DisplaySlide() con el índice de la diapositiva anterior o siguiente, respectivamente, si el índice de la diapositiva actual está dentro del intervalo válido de 1 a todo el número de diapositivas.

Cuando se cierra el formulario, el campo Cerrar(). Aquí, nos aseguramos de que la gestión de recursos se realiza correctamente liberando los recursos del sistema saliendo del programa PowerPoint y terminando la aplicación PowerPoint utilizando el comando Quit() método.

Archivo PowerPoint

Cómo ver archivos Powerpoint en C#: Figura 1 - Archivo PowerPoint demo.pptx

Salida: Visor de PowerPoint

Como Ver Archivos Powerpoint en C#: Figura 2 - PowerPointViwercs

IronXL

La manipulación de archivos Excel en C# es más fácil con la popular biblioteca .NET Excel LibraryIronXL. Es una herramienta versátil apta para una gran variedad de aplicaciones gracias a su amplio conjunto de funciones para leer, generar y modificar archivos Excel.

A continuación, repasaré algunos de los atributos clave de IronXL:

Fácil acceso y alta velocidad

  • Con IronXL, los desarrolladores pueden leer datos de archivos Excel actuales y escribir datos en archivos Excel nuevos o existentes rápidamente. Se trata de acceder a las propiedades del libro de trabajo y de la hoja de cálculo, como los valores de las celdas, las fórmulas y el formato.

Amplio soporte de Excel

  • Los desarrolladores pueden importar datos de bases de datos y archivos CSV, entre otras fuentes, a hojas de cálculo Excel utilizando IronXL. Del mismo modo, los datos de los archivos Excel pueden exportarse a diversos formatos, como CSV, HTML, XML y PDF.

Flexibilidad

  • Con IronXL, los desarrolladores pueden añadir, modificar y eliminar dinámicamente hojas de cálculo de archivos Excel. Esto permite flexibilidad en el formato y la organización de los datos según los requisitos de la aplicación.

Modificaciones precisas

  • Las hojas de cálculo de Excel pueden tener celdas individuales modificadas con precisión gracias a IronXL. Los desarrolladores pueden establecer valores de celda, fórmulas, estilos, formato y otras características mediante programación.

    Para más información sobre la documentaciónaquí.

Instalar IronXL

Antes de continuar, instalemosIronXL mediante la consola del gestor de paquetes NuGet:

Install-Package IronXL.Excel

IronXL puede ser utilizado en nuestro proyecto C# después de la instalación.

Uso de IronXL para operaciones en Excel

Veamos un escenario hipotético en el que queremos leer datos de un archivo de Excel utilizando IronXL. He aquí un pequeño ejemplo de cómo conseguirlo:

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#

Empezaremos por añadir los espacios de nombres necesarios. El espacio de nombres IronXL contiene las clases y métodos proporcionados por la biblioteca IronXL. Se indica la ruta a sample.xlsx, el archivo Excel que queremos leer. Utilizando WorkBook, se carga el fichero Excel. El objeto Workbook suministrado por el comando Load.() representa el libro de Excel. Podemos acceder a la primera hoja de trabajo del libro de trabajo utilizando workbook.WorkSheets[0]. Repasamos las filas y columnas de la hoja de cálculo utilizando apilados para cada uno de los bucles. Enviamos el valor de cada celda a la consola.

Cómo Ver Archivos Powerpoint en C#: Figura 3 - Salida IronXL

Para obtener más información sobre los ejemplos de código de IronXL, consulteaquí.

Conclusión

Varias aplicaciones de software requieren la conversión de presentaciones PowerPoint a imágenes utilizando C#. El proceso puede terminar bastante rápido tanto si se utiliza el espacio de nombres Microsoft.Office.Interop.PowerPoint como si no. Puede incorporar fácilmente la conversión de PowerPoint a imagen en sus programas C# con la ayuda de los ejemplos de código de este artículo, abriendo un mundo de posibilidades para la alteración y entrega de información.

IronXL ofrece un método sencillo y eficaz para realizar operaciones con Excel en C# sin necesidad de que Excel esté instalado en el sistema de destino ni de depender de la biblioteca Interop. Con su completo conjunto de funciones y su API de fácil uso, IronXL es una herramienta muy útil para los desarrolladores que trabajan con datos de Excel en aplicaciones C#. Simplifica tareas como la lectura, escritura y edición de archivos Excel. Para los proyectos de desarrollo relacionados con Excel, IronXL proporciona una solución estable que aumenta la productividad y la flexibilidad, tanto si procesa datos como si elabora informes o automatiza tareas de hojas de cálculo.

IronXL puso a disposición de los usuarios una edición comunitaria gratuita con restricciones para uso no comercial. Las versiones de pago cuestan a partir de $749 y pueden obtenerse mediante suscripción o a perpetuidadsistemas de concesión de licencias. Funcionan mejor y ofrecen más funciones y asistencia. IronXL también ofrece unlicencia de prueba gratuita. Para obtener información completa y actualizada sobre la concesión de licencias, visite la páginapágina de licencia. Visita esta páginasitio web para obtener más información sobre los productos de Iron Software.

SIGUIENTE >
Cómo Usar Crear PowerPoint desde una Plantilla en C#

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,111,773 Ver licencias >