Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
Crear instancia de aplicación PowerPoint.
Añada la referencia Interop al proyecto
Abrir Presentación utilizando la Instancia.
Marque y Cree una carpeta de salida para los archivos de exportación.
Cargue las imágenes de las diapositivas creadas en el cuadro Imagen. Utilice el botón para desplazarse por las diapositivas.
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.
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.
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
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.
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:
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í.
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.
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
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.
Para obtener más información sobre los ejemplos de código de IronXL, consulteaquí.
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.
9 productos API .NET para sus documentos de oficina