使用 C# .NET 在电子邮件正文中发送 Excel 数据

Excel 文件广泛用于以行和列的形式保存和共享数据。此外,您还可以对 Excel 数据进行各种操作,并对其进行可视化分析。在某些情况下,您必须在电子邮件中嵌入和发送 Excel 工作表中的数据。为此,本文介绍了如何在 C# .NET 中以编程方式在电子邮件正文中发送 Excel 数据。

C# .NET API 在电子邮件正文中发送 Excel 数据

要在电子邮件中发送 Excel 数据,我们将使用 Aspose.Email for .NET。它是一种流行且功能丰富的 API,可让您在 .NET 应用程序中创建和发送电子邮件。此外,我们将使用 Aspose.Cells for .NET 将 Excel 工作表转换为 HTML 内容。您可以 下载 API 的 DLL 或使用以下命令从 NuGet 安装它们。

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

在 C# 中的电子邮件正文中发送 Excel 数据

首先,我们将使用 Aspose.Cells for .NET 将 Excel 数据转换为 HTML,以便将其嵌入到电子邮件正文中。之后,我们将使用 Aspose.Email for .NET 编写电子邮件,将 Excel 数据插入电子邮件正文,然后发送电子邮件。以下是使用 C# 在电子邮件正文中发送 Excel 数据的步骤。

  • 使用 Aspose.Cells 的 Workbook 类加载 Excel 工作簿。
  • 将工作簿以 HTML 格式保存到 MemoryStream
  • 将流中的 HTML 读入字符串对象。
  • 创建一个新的 MailMessage 对象并将其 HtmlBody 设置为 HTML 内容。
  • 创建和配置 SmtpClient 类的实例。
  • 使用 SmtpClient.Send(MailMessage) 方法发送电子邮件。

以下代码示例展示了如何在 C# 的电子邮件正文中发送 Excel 数据。

// 加载所需的 Excel 工作簿
Workbook workbook = new Workbook("Data.xlsx");

// 将工作簿以 HTML 格式保存到 MemoryStream
MemoryStream ms = new MemoryStream();
workbook.Save(ms, SaveFormat.Html);
ms.Position = 0;

// 为上面的 MemoryStream 创建一个 StreamReader 对象
StreamReader sr = new StreamReader(ms);

// 将保存的 HTML 从 StreamReader 加载到字符串变量中
string strHtmlBody = sr.ReadToEnd();

// 定义一个新的电子邮件消息并设置它的 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;

// 创建 SMTP 客户端
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com";
client.Username = "Username";
client.Password = "Password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.Auto;

// 发送电子邮件
client.Send(message);

获取免费 API 许可证

您可以使用 免费临时许可证 来使用 Aspose API,而不受评估限制。

结论

在本文中,您学习了如何使用 C# .NET 在电子邮件正文中嵌入和发送 Excel 数据。您可以简单地安装上述 API 并将提供的代码集成到您的 .NET 应用程序中。此外,您可以使用下面给出的文档来探索有关 API 的更多信息。

如果您有任何问题,您可以在我们的 论坛 上发帖。

也可以看看