Saltar al pie de página
HERRAMIENTAS DE EXCEL

Cómo usar Crear PowerPoint desde una plantilla en C#

Las presentaciones de PowerPoint siguen siendo un estándar para comunicar información de manera eficiente en ámbitos comerciales, educativos y otros dominios. PowerPoint es una herramienta flexible que puede mejorar sus esfuerzos de comunicación, ya sea que esté enseñando una clase, dando actualizaciones de proyectos a su equipo o haciendo una presentación a posibles inversores. Sin embargo, crear presentaciones desde cero puede llevar mucho tiempo, y la eficiencia y uniformidad del diseño pueden no ser siempre las deseadas. Aquí es donde las plantillas de PowerPoint resultan útiles, proporcionando diapositivas listas para usar con temas y diseños que se pueden adaptar a sus necesidades.

En este artículo, veremos cómo usar C# para crear un PowerPoint a partir de una plantilla. Podemos acelerar el procedimiento y permitir a los clientes crear presentaciones pulidas con facilidad utilizando la [biblioteca PowerPoint Interop](https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff764034(v=office.12) de Microsoft.

Cómo crear una presentación de PowerPoint a partir de una plantilla en C

  1. Cree un nuevo proyecto de C#.
  2. Inicie el programa PowerPoint en una nueva instancia.
  3. Inserte diapositivas de una plantilla en una presentación recién creada.
  4. Cree un nuevo archivo y guarde la presentación.
  5. Cierre el programa PowerPoint y termine la presentación.

Comprensión de PowerPoint a partir de una plantilla

Revisemos primero las ideas básicas detrás de escribir presentaciones de PowerPoint de manera programada antes de entrar en el código. Con la biblioteca PowerPoint Interop de Microsoft, los desarrolladores pueden usar lenguajes .NET como C# para comunicarse con aplicaciones de PowerPoint. Muchas funciones, incluido el poder crear diapositivas, agregar texto, insertar imágenes y aplicar formato, son expuestas por este paquete.

Crear un nuevo proyecto de Visual Studio

Para iniciar un nuevo proyecto de Visual Studio, siga las instrucciones a continuación.

Inicie la aplicación de Visual Studio. Antes de usar Visual Studio, asegúrate de haberlo instalado en tu computadora.

Selecciona Archivo, luego Nuevo y finalmente Proyecto.

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 1 - Crear un nuevo proyecto en Visual Studio. Elija el lenguaje C# y un proyecto de aplicación de consola o aplicación de consola (.NET Core).

Elija su lenguaje de programación preferido (por ejemplo, C#) del lado izquierdo del cuadro de "Crear un nuevo proyecto". A continuación, de la lista de plantillas de proyectos disponibles, elija la plantilla "Aplicación de consola" o "Aplicación de consola (.NET Core)". Para darle un nombre a tu proyecto, por favor rellena el campo "Nombre".

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 2 - Configure el proyecto de aplicación de consola: agregue un nombre de proyecto y ubicación.

Decida dónde se almacenará el proyecto. Para comenzar a trabajar en un nuevo proyecto de aplicación de consola, haga clic en "Siguiente". Luego seleccione el marco apropiado .NET y haga clic en "Crear".

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 3 - Seleccione el marco .NET apropiado y haga clic en Crear.

En un proyecto de C# recién establecido, agregue una referencia a la biblioteca Microsoft PowerPoint Interop. Ahora es más fácil desarrollar e interactuar con presentaciones gracias a esta biblioteca, que permite la comunicación entre su código C# y la aplicación PowerPoint.

Crear una presentación de PowerPoint a partir de una plantilla usando C

Cargar la plantilla de PowerPoint que forma la base de nuestra nueva presentación es el primer paso. Los diseños de diapositivas predefinidos, los temas y los marcadores de posición de contenido se ven frecuentemente en las plantillas. La función de la biblioteca Microsoft.Office.PowerPoint.Interop nos permite abrir el archivo de plantilla y recuperar su contenido desde nuestro código fuente en C#.

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx", 
            presentation.Slides.Count + 1, 
            1, 
            0);

        // Save the updated presentation
        presentation.Save();

        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core; // Make sure to include this for MsoTriState

class Program
{
    static void Main(string[] args)
    {
        // Initialize PowerPoint application
        PowerPoint.Application powerpointApp = new PowerPoint.Application();

        // Open an existing PowerPoint file
        PowerPoint.Presentation presentation = powerpointApp.Presentations.Open(
            @"C:\Path\To\Existing\output.pptx", 
            MsoTriState.msoFalse, 
            MsoTriState.msoFalse, 
            MsoTriState.msoTrue);

        // Insert slides from a template file into the presentation
        presentation.Slides.InsertFromFile(
            @"C:\Path\To\External\demo.pptx", 
            presentation.Slides.Count + 1, 
            1, 
            0);

        // Save the updated presentation
        presentation.Save();

        // Close the presentation and quit PowerPoint application
        presentation.Close();
        powerpointApp.Quit();
    }
}
Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
Imports Microsoft.Office.Core ' Make sure to include this for MsoTriState

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize PowerPoint application
		Dim powerpointApp As New PowerPoint.Application()

		' Open an existing PowerPoint file
		Dim presentation As PowerPoint.Presentation = powerpointApp.Presentations.Open("C:\Path\To\Existing\output.pptx", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue)

		' Insert slides from a template file into the presentation
		presentation.Slides.InsertFromFile("C:\Path\To\External\demo.pptx", presentation.Slides.Count + 1, 1, 0)

		' Save the updated presentation
		presentation.Save()

		' Close the presentation and quit PowerPoint application
		presentation.Close()
		powerpointApp.Quit()
	End Sub
End Class
$vbLabelText   $csharpLabel

Después de cargar la plantilla, construimos una nueva presentación usando su diseño. Usamos el archivo de presentación de PowerPoint (output.pptx), que nos ayuda a crear un objeto de presentación de PowerPoint que actuará como un lienzo para nuestro material. El diseño y tema de la plantilla se trasladarán a esta presentación, dándole un estilo visual unificado.

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 4 - Segundo archivo de PowerPoint (demo.pptx) que contiene las diapositivas que desea incluir en su presentación

El método presentation.Slides.InsertFromFile() toma cuatro parámetros: FileName, Index, SlideStart y SlideEnd.

  • El camino al archivo de PowerPoint que contiene las diapositivas que desea incluir en su presentación se especifica como el primer parámetro (demo.pptx).
  • El siguiente parámetro es la posición en la presentación de destino donde desea insertar las diapositivas.
  • Los otros dos parámetros son opcionales. Estos parámetros nos permiten especificar los índices de las diapositivas de inicio y fin. Si necesitamos extraer diapositivas en un rango específico, podemos usar estos parámetros.

Puede usar el método presentation.Save() para guardar la presentación después de que las diapositivas hayan sido insertadas usando el método InsertFromFile(). Después de guardar, cierre el programa de PowerPoint usando el método Close(), y luego salga de la presentación con el método Quit(). De esta manera, puedes mejorar el contenido y la flexibilidad de tu presentación de PowerPoint agregando dinámicamente diapositivas de archivos externos.

Resultado

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 5 - Salida: output.pptx

IronXL

Presentamos una biblioteca de C# rica en funciones para trabajar con archivos de Excel llamada IronXL. IronXL de Iron Software proporciona una amplia gama de herramientas para crear, poblar y dar formato dinámicamente a documentos Excel. Con su API fácil de usar y documentación extensa, IronXL agiliza las interacciones de Excel en C# y brinda a los desarrolladores una experiencia fluida para tareas relacionadas con Excel.

Características de IronXL

  • Amplio soporte de Excel: IronXL es capaz de abrir y manipular una gran cantidad de archivos de Excel en varios formatos de Excel, tales como CSV, XLS y formatos de archivo XLSX. Los desarrolladores pueden extraer efectivamente datos de un archivo de Excel existente utilizando tanto archivos de Excel antiguos como contemporáneos gracias a las robustas funciones de análisis de IronXL.
  • Alta velocidad: IronXL prioriza la optimización del rendimiento. Las interacciones con Excel son fiables y rápidas debido al uso de algoritmos eficientes y estrategias de gestión de memoria. IronXL proporciona una reducción en la carga de memoria y tasas de procesamiento optimizadas, por lo que los desarrolladores pueden manejar fácilmente archivos de Excel grandes.
  • API sencilla y fácil de usar: La API fácil de usar de IronXL lo hace adecuado para desarrolladores de todos los niveles de habilidad. IronXL reduce la curva de aprendizaje para los desarrolladores de C# y agiliza el proceso de crear y leer un archivo existente al proporcionar maneras sencillas de leer archivos Excel, acceder a libros de trabajo de Excel y obtener datos de las celdas.

Para saber más sobre la documentación de IronXL refiérase aquí.

Instalar IronXL

Para instalar IronXL, use las instrucciones y comando dados en los siguientes pasos:

En Visual Studio, navegue a Herramientas -> Administrador de paquetes NuGet -> Consola del administrador de paquetes.

Ingrese el siguiente comando en la pestaña de consola del administrador de paquetes:

Install-Package IronXL.Excel

El paquete IronXL ahora es utilizable después de ser descargado e instalado en el proyecto actual.

Crear Excel usando IronXL

Examinemos ahora un ejemplo de código real que demuestra cómo escribir datos en un documento Excel en C# usando IronXL. Vamos a recorrer cómo iniciar un libro de trabajo Excel fresco, poblar una hoja de trabajo y luego guardar la información en un archivo:

using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);

        // Add a new WorkSheet to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "Superman", "35", "Metropolis" },
            { "Batman", "34", "Gotham City" },
            { "Flash", "30", "Central City" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook
        workBook.Close();
    }
}
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Create a new WorkBook object
        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);

        // Add a new WorkSheet to the workbook
        WorkSheet workSheet = workBook.CreateWorkSheet("Sheet1");

        // Define sample data
        string[,] data = {
            { "Name", "Age", "City" },
            { "Superman", "35", "Metropolis" },
            { "Batman", "34", "Gotham City" },
            { "Flash", "30", "Central City" }
        };

        // Populate the worksheet with data
        for (int row = 0; row < data.GetLength(0); row++)
        {
            for (int col = 0; col < data.GetLength(1); col++)
            {
                workSheet.SetCellValue(row, col, data[row, col]);
            }
        }

        // Save the workbook to a .xlsx file
        workBook.SaveAs("Demo.xlsx");

        // Close the workbook
        workBook.Close();
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new WorkBook object
		Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)

		' Add a new WorkSheet to the workbook
		Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Define sample data
		Dim data(,) As String = {
			{ "Name", "Age", "City" },
			{ "Superman", "35", "Metropolis" },
			{ "Batman", "34", "Gotham City" },
			{ "Flash", "30", "Central City" }
		}

		' Populate the worksheet with data
		For row As Integer = 0 To data.GetLength(0) - 1
			For col As Integer = 0 To data.GetLength(1) - 1
				workSheet.SetCellValue(row, col, data(row, col))
			Next col
		Next row

		' Save the workbook to a .xlsx file
		workBook.SaveAs("Demo.xlsx")

		' Close the workbook
		workBook.Close()
	End Sub
End Class
$vbLabelText   $csharpLabel

En este ejemplo de código, primero creamos un nuevo objeto WorkBook usando la función Create() de IronXL, especificando el formato de archivo Excel necesario. El siguiente paso es crear una nueva hoja de trabajo dentro del libro y definir algunos datos de muestra en una matriz bidimensional. A continuación, con el fin de poblar la hoja de cálculo con los datos de muestra, utilizamos bucles anidados para acceder y establecer los valores de diferentes celdas. Con el fin de liberar recursos del sistema, cerramos el libro después de usar el método SaveAs() para guardarlo en un archivo llamado "Demo.xlsx". De manera similar, somos capaces de generar más de una hoja para el archivo de destino.

El archivo Excel creado como salida se muestra a continuación. Para saber más sobre cómo escribir archivos Excel, refiérase a los ejemplos de código página.

Cómo usar Crear PowerPoint a partir de una plantilla en C#: Figura 6 - Salida del archivo Excel

Conclusión

En conclusión, utilizar C# para crear presentaciones de PowerPoint a partir de plantillas permite a los usuarios mejorar la consistencia del diseño, agilizar el flujo de trabajo y producir contenido que tenga un efecto. Los desarrolladores pueden ahorrar tiempo y trabajo al mismo tiempo que garantizan resultados profesionales al automatizar el proceso de creación y utilizando las características de la biblioteca Microsoft PowerPoint Interop. Aprender este enfoque le ayudará, como presentador, profesional de negocios o educador, a mejorar sus habilidades de presentación y captar a su audiencia con diapositivas llamativas.

Para los desarrolladores de C#, IronXL es una poderosa alternativa a Microsoft Excel, que proporciona total soporte para Excel, gran rendimiento y una interacción perfecta con el marco .NET. La API fácil de usar de IronXL y el control detallado sobre los documentos de Excel simplifican la escritura de Excel en C#. Esto facilita el proceso para que los desarrolladores automaticen tareas relacionadas con Excel, exporten datos y generen informes dinámicos. Ya sea que estén creando archivos Excel para aplicaciones de escritorio, web o móviles, los desarrolladores de C# pueden contar con IronXL para agilizar las tareas relacionadas con Excel y liberar todo el potencial de Excel en sus programas C#.

IronXL cuesta $799 cuando se lanza por primera vez. Además, los usuarios tienen la opción de pagar una tarifa de membresía de un año para obtener asistencia de producto y actualizaciones. A cambio de una tarifa, IronXL ofrece protección contra la redistribución desenfrenada. Para conocer más sobre el costo aproximado, visite esta página de licencias. Vea más sobre Iron Software haciendo clic en este enlace.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más