Enviar datos de Excel en el cuerpo del correo electrónico usando C# .NET

Los archivos de Excel se utilizan ampliamente para guardar y compartir datos en forma de filas y columnas. Además, puede realizar varias operaciones en los datos de Excel y analizarlos visualmente. En algunos casos, debe incrustar y enviar los datos de una hoja de Excel en el mensaje de correo electrónico. Para lograrlo, este artículo cubre cómo enviar datos de Excel en el cuerpo de un correo electrónico mediante programación en C# .NET.

API de C# .NET para enviar datos de Excel en el cuerpo del correo electrónico

Para enviar los datos de Excel en mensajes de correo electrónico, utilizaremos Aspose.Email for .NET. Es una API popular y rica en funciones que le permite crear y enviar correos electrónicos desde sus aplicaciones .NET. Además, usaremos Aspose.Cells for .NET para convertir las hojas de Excel en contenido HTML. Puede descargar las DLL de las API o instalarlas desde NuGet mediante los siguientes comandos.

PM> Install-Package Aspose.Email
PM> Install-Package Aspose.Cells

Enviar datos de Excel en el cuerpo del correo electrónico en C#

Primero, usaremos Aspose.Cells for .NET para convertir los datos de Excel en HTML para que se puedan incrustar en el cuerpo del correo electrónico. Después de eso, usaremos Aspose.Email for .NET para redactar el correo electrónico, insertar datos de Excel en el cuerpo del correo electrónico y enviar el correo electrónico. Los siguientes son los pasos para enviar datos de Excel en el cuerpo de un correo electrónico en C#.

  • Cargue el Workbook de Excel usando la clase Workbook de Aspose.Cells.
  • Guarde el Workbook en MemoryStream en formato HTML.
  • Lea el HTML de la transmisión en un objeto de cadena.
  • Cree un nuevo objeto MailMessage y establezca su HtmlBody en el contenido HTML.
  • Cree y configure la instancia de la clase SmtpClient.
  • Envíe el correo electrónico usando el método SmtpClient.Send(MailMessage).

El siguiente ejemplo de código muestra cómo enviar datos de Excel en el cuerpo de un correo electrónico en C#.

// Cargue el Workbook de Excel deseado
Workbook workbook = new Workbook("Data.xlsx");

// Guarde el Workbook en MemoryStream en formato HTML
MemoryStream ms = new MemoryStream();
workbook.Save(ms, SaveFormat.Html);
ms.Position = 0;

// Cree un objeto StreamReader para el MemoryStream anterior
StreamReader sr = new StreamReader(ms);

// Cargue el HTML guardado de StreamReader en una variable de cadena
string strHtmlBody = sr.ReadToEnd();

// Defina un nuevo mensaje de correo electrónico y configure su HtmlBody
MailMessage message = new MailMessage();
message.HtmlBody = strHtmlBody;
message.Subject = "Inline Excel Message";
message.From = "sender@abc.com";
message.To = "receiver@xyz.com";
message.IsBodyHtml = true;

// Crear cliente SMTP
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Username = "Username";
client.Password = "Password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.Auto;

// Enviar correo electrónico
client.Send(message);

Obtenga una licencia de API gratuita

Puede utilizar las API de Aspose sin limitaciones de evaluación mediante una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a incrustar y enviar datos de Excel en el cuerpo de un correo electrónico mediante C# .NET. Simplemente puede instalar las API mencionadas e integrar el código proporcionado en sus aplicaciones .NET. Además, puede explorar más sobre las API utilizando la documentación que se proporciona a continuación.

En caso de que tenga alguna pregunta, puede publicarla en nuestro foro.

Ver también