Skicka Excel-data i e-posttexten med C# .NET

Excel-filer används ofta för att behålla och dela data i form av rader och kolumner. Dessutom kan du utföra olika operationer på Excel-data och visuellt analysera dem. I vissa fall måste du bädda in och skicka data från ett Excel-ark i e-postmeddelandet. För att åstadkomma det, täcker den här artikeln hur du skickar Excel-data i ett e-postmeddelande programmatiskt i C# .NET.

C# .NET API:er för att skicka Excel-data i e-posttext

För att skicka Excel-data i e-postmeddelanden använder vi Aspose.Email for .NET. Det är ett populärt och funktionsrikt API som låter dig skapa och skicka e-post från dina .NET-applikationer. Dessutom kommer vi att använda Aspose.Cells for .NET för att konvertera Excel-ark till HTML-innehåll. Du kan antingen ladda ner API:ernas DLL:er eller installera dem från NuGet med hjälp av följande kommandon.

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

Skicka Excel-data i e-postkroppen i C#

Först kommer vi att använda Aspose.Cells för .NET för att konvertera Excel-data till HTML så att det kan bäddas in i e-postmeddelandet. Efter det kommer vi att använda Aspose.Email för .NET för att skriva e-postmeddelandet, infoga Excel-data i e-postmeddelandet och skicka e-post. Följande är stegen för att skicka Excel-data i ett e-postmeddelande i C#.

  • Ladda Excel-arbetsbok med Aspose.Cells klass Workbook.
  • Spara arbetsboken till MemoryStream i HTML-format.
  • Läs HTML från strömmen till ett strängobjekt.
  • Skapa ett nytt MailMessage-objekt och ställ in dess HtmlBody till HTML-innehållet.
  • Skapa och konfigurera instansen av klassen SmtpClient.
  • Skicka e-postmeddelandet med metoden SmtpClient.Send(MailMessage).

Följande kodexempel visar hur du skickar Excel-data i ett e-postmeddelande i C#.

// Ladda önskad Excel-arbetsbok
Workbook workbook = new Workbook("Data.xlsx");

// Spara arbetsboken i MemoryStream i HTML-format
MemoryStream ms = new MemoryStream();
workbook.Save(ms, SaveFormat.Html);
ms.Position = 0;

// Skapa ett StreamReader-objekt för ovanstående MemoryStream
StreamReader sr = new StreamReader(ms);

// Ladda den sparade HTML-koden från StreamReader till en strängvariabel
string strHtmlBody = sr.ReadToEnd();

// Definiera ett nytt e-postmeddelande och ställ in dess 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;

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

// Skicka epost
client.Send(message);

Skaffa en gratis API-licens

Du kan använda Aspose API:er utan utvärderingsbegränsningar med en gratis temporär licens.

Slutsats

I den här artikeln har du lärt dig hur du bäddar in och skickar Excel-data i ett e-postmeddelande med C# .NET. Du kan helt enkelt installera de nämnda API:erna och integrera den medföljande koden i dina .NET-applikationer. Dessutom kan du utforska mer om API:erna med hjälp av deras dokumentation nedan.

Om du skulle ha några frågor kan du göra ett inlägg på vårt forum.

Se även