Crear Un PowerPoint .PPT Con C#
Si somos desarrolladores y queremos crear nuestras presentaciones PPT utilizando C# o VB, entonces podemos hacer uso de las bibliotecas de interoperabilidad de Office para codificar nuestros archivos PPT y pptx. Este artículo muestra un fragmento rápido para saber cómo podemos proceder.
En primer lugar tenemos que preparar el entorno y asociar las bibliotecas de interoperabilidad. Podemos descargar estas bibliotecas de forma gratuita, pero tendremos que tener Office instalado. Lo hemos probado en Office 2010, pero en Office 2007 también debería funcionar.
Crear PowerPoint PPT utilizando C#
Application pptApplication = new Application();
Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;
// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);
Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];
// Create new Slide
slides = pptPresentation.Slides;
slide = slides.AddSlide(1, customLayout);
// Add title
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = «FPPT.com»;
objText.Font.Name = «Arial»;
objText.Font.Size = 32;
objText = slide.Shapes[2].TextFrame.TextRange;
objText.Text = «Content goes here\nYou can add text\nItem 3»;
slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = «This demo is created by FPPT using C# – Download free templates from http://FPPT.com»;
pptPresentation.SaveAs(@»c:\temp\fppt.pptx», Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
//pptPresentation.Close();
//pptApplication.Quit();
Ahora vamos a explicar lo que significa este fragmento.
En primer lugar obtenemos el objeto Presentación de la biblioteca de interoperabilidad, lo que nos ayudará a acceder a los programas de Microsoft PowerPoint y otros de Office. Por supuesto, para que esto funcione tenemos que tener instalado Office y hacer referencia a las bibliotecas en la aplicación.
Seguidamente creamos un diseño personalizado utilizando el pptLayoutText que tiene el título y contenido de la presentación. Es el diseño por defecto que encontraremos al abrir PowerPoint.
Ya tenemos la matriz de diapositivas y vamos a añadir un objeto. Esto se insertará en la diapositiva #1.
A continuación obtenemos la forma del título y escribimos dicho título de la presentación.
Hacemos lo mismo con el contenido de la presentación. Tenemos que tener en cuenta que estamos insertando una lista de viñetas (separadas por \n) usando C#. Esto puede ser útil para insertar una lista de elementos, pero si no queremos insertar una lista de viñetas, podemos insertar texto sin formato.
A continuación añadimos un comentario en las notas del orador para comprobar que podemos hacerlo.
Y finalmente tenemos que guardar la presentación como un archivo de salida. Hay que fijarse si queremos que la ventana esté o no abierta.
He aquí el fragmento de código fuente Snippet.io
Application pptApplication = new Application();
Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;
// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);
Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];
// Create new Slide
slides = pptPresentation.Slides;
slide = slides.AddSlide(1, customLayout);
// Add title
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = «FPPT.com»;
objText.Font.Name = «Arial»;
objText.Font.Size = 32;
objText = slide.Shapes[2].TextFrame.TextRange;
objText.Text = «Content goes here\nYou can text\nItem 3»;
slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = «This demo is created by FPPT using C# – Download free templates from http://FPPT.com»;
pptPresentation.SaveAs(@»c:\temp\fppt.pptx», Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
//pptPresentation.Close();
//pptApplication.Quit();
Para más información no dude en consultar nuestro artículo original Create PowerPoint .PPT programmatically using C#