Enviar dados do Excel no corpo do email usando C# .NET

Os arquivos do Excel são amplamente usados para manter e compartilhar dados na forma de linhas e colunas. Além disso, você pode realizar várias operações nos dados do Excel e analisá-los visualmente. Em alguns casos, você precisa incorporar e enviar os dados de uma planilha do Excel na mensagem de e-mail. Para fazer isso, este artigo aborda como enviar dados do Excel no corpo de um email programaticamente em C# .NET.

APIs C# .NET para enviar dados do Excel no corpo do email

Para enviar os dados do Excel em mensagens de e-mail, usaremos Aspose.Email for .NET. É uma API popular e rica em recursos que permite criar e enviar e-mails de dentro de seus aplicativos .NET. Além disso, usaremos Aspose.Cells for .NET para converter as planilhas do Excel em conteúdo HTML. Você pode baixar as DLLs das APIs ou instalá-las do NuGet usando os comandos a seguir.

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

Enviar dados do Excel no corpo do email em C#

Primeiro, usaremos o Aspose.Cells para .NET para converter os dados do Excel em HTML para que possam ser incorporados ao corpo do email. Depois disso, usaremos o Aspose.Email for .NET para compor o e-mail, inserir dados do Excel no corpo do e-mail e enviar o e-mail. A seguir estão as etapas para enviar dados do Excel no corpo de um email em C#.

  • Carregue a pasta de trabalho do Excel usando a classe Workbook do Aspose.Cells.
  • Salve a pasta de trabalho em MemoryStream no formato HTML.
  • Leia o HTML do fluxo em um objeto de string.
  • Crie um novo objeto MailMessage e defina seu HtmlBody para o conteúdo HTML.
  • Crie e configure a instância da classe SmtpClient.
  • Envie o e-mail usando o método SmtpClient.Send(MailMessage).

O exemplo de código a seguir mostra como enviar dados do Excel no corpo de um email em C#.

// Carregue a pasta de trabalho do Excel desejada
Workbook workbook = new Workbook("Data.xlsx");

// Salve a pasta de trabalho no MemoryStream no formato HTML
MemoryStream ms = new MemoryStream();
workbook.Save(ms, SaveFormat.Html);
ms.Position = 0;

// Crie um objeto StreamReader para o MemoryStream acima
StreamReader sr = new StreamReader(ms);

// Carregar o HTML salvo do StreamReader em uma variável de string
string strHtmlBody = sr.ReadToEnd();

// Defina uma nova mensagem de email e defina seu 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;

// Criar 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 email
client.Send(message);

Obtenha uma licença de API gratuita

Você pode usar APIs Aspose sem limitações de avaliação usando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como incorporar e enviar dados do Excel no corpo de um email usando C# .NET. Você pode simplesmente instalar as APIs mencionadas e integrar o código fornecido em seus aplicativos .NET. Além disso, você pode explorar mais sobre as APIs usando a documentação abaixo.

Caso você tenha alguma dúvida, você pode postar em nosso fórum.

Veja também