Generera Word från mall i C#

Att automatisera dokumentgenerering är avgörande för företag för att skapa dynamiska rapporter, fakturor och brev. Med Aspose.Words Mail Merge för .NET kan du effektivt fylla i Word-mallar med data från olika källor, inklusive objekt, CSV, JSON och XML. Denna guide demonstrerar hur du utnyttjar Mail Merge i C# för strömlinjeformade och automatiserade dokumentarbetsflöden, med särskilt fokus på C# .NET dynamisk Word-dokumentskapande.


Ämnen som behandlas:


Översikt av Mail Merge för .NET

Aspose.Words Mail Merge för .NET gör det möjligt för utvecklare att generera personliga dokument från fördefinierade mallar som innehåller sammanslagna fält. Pluginet är utformat för sömlös integration inom .NET-miljöer, vilket erbjuder möjligheter att:

  • Fyll i mallar med data dynamiskt, vilket stöder .NET-ramverkets generering av Word-dokument.
  • Utföra massgenerering av dokument effektivt, genom att utnyttja .NET mail merge-lösningen för stora datamängder.
  • Bibehålla konsekvent formatering över utdata, vilket effektivt förbättrar C# bästa praxis för Word-dokumentmallar.

Nyckelfunktioner:

  1. Stöd för flera källor: Använd data från objekt, databaser, XML, JSON och CSV för att skapa anpassade Word-dokument med C#.
  2. Hög prestanda: Hantera effektivt stora datamängder och bulkoperationer för dynamisk Word-dokumentgenerering med .NET Core.
  3. Anpassningsbara mallar: Skapa mallar med platshållare för datainmatning, och dra nytta av .NET Word mail merge-automatiseringsmöjligheterna.

Installation

Installera Aspose.Words med NuGet:

PM> Install-Package Aspose.Words

Generera Word-dokument från mall med C#-objekt

Först ska vi se hur man fyller en Word-mall med C#-objekt. För att illustrera detta kommer vi att skapa ett Word-dokument (DOC/DOCX) med följande platshållare som innehållet i dokumentet:

<<[sender.Name]>> säger: "<<[sender.Message]>>."

Här är sender en instans av en klass som vi kommer att använda för att fylla i mallen med hjälp av C# generera Word-dokument från databas-metoden.

Nu kan vi använda rapporteringsmotorn i Aspose.Words för att generera Word-dokumentet från mallen och instansen av Sender-klassen genom att följa dessa steg:

  • Skapa en instans av Document-klassen och initiera den med sökvägen till Word-mallen.
  • Skapa och initiera ett objekt av Sender-klassen.
  • Instansiera ReportingEngine-klassen.
  • Fyll i mallen med ReportingEngine.BuildReport(), som tar dokumentets instans, datakälla och namnet på datakällan som parametrar.
  • Spara det genererade Word-dokumentet med hjälp av Document.Save()-metoden.

Följande kodexempel visar hur man genererar ett Word-dokument från en mall i C#.

Utdata

Generera Word-dokument från en XML-datakälla i C#

För att generera ett Word-dokument från en XML-datakälla, kommer vi att använda en mer komplex Word-mall med följande platshållare:

<<foreach [in persons]>>Namn: <<[Name]>>, Ålder: <<[Age]>>, Födelsedatum: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Genomsnittlig ålder: <<[persons.Average(p => p.Age)]>>

Den XML-datakälla som används i det här exemplet visas nedan.

För att skapa ett Word-dokument från en XML-datakälla, följ dessa steg:

  • Skapa en instans av Document-klassen och initiera den med sökvägen till Word-mallen.
  • Skapa en instans av XmlDataSource-klassen och initiera den med sökvägen till XML-filen.
  • Instansiera ReportingEngine-klassen.
  • Använd ReportingEngine.BuildReport()-metoden som tidigare för att fylla Word-mallen.
  • Spara det genererade Word-dokumentet med Document.Save()-metoden.

Här är kodexemplet som visar hur man generatorerar ett Word-dokument från XML-datakälla i C#.

Utdata

Generera Word-dokument från en JSON-datakälla i C#

Nästa steg är att utforska hur man genererar ett Word-dokument med en JSON-datakälla. I det här exemplet kommer vi att skapa en lista över kunder uppdelade efter sina chefer. Word-mallen kommer att se ut så här:

<<foreach [in managers]>>Chef: <<[Name]>>
Kontrakt:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Den motsvarande JSON-datakälla vi kommer att använda för att fylla i mallen är nedan:

För att generera Word-dokumentet från JSON kommer vi att använda JsonDataSource-klassen för att ladda datakällan, och de återstående stegen följer tidigare struktur. Kodexemplet nedan visar hur man genererar ett Word-dokument från JSON-mallen i C#.

Utdata

Generera Word-dokument från CSV-datakälla i C#

För att generera Word-dokumentet från en CSV-källa kommer vi att utnyttja följande Word-mall:

<<foreach [in persons]>>Namn: <<[Column1]>>, Ålder: <<[Column2]>>, Födelsedatum: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Genomsnittlig ålder: <<[persons.Average(p => p.Column2)]>>

Mallen kommer att fyllas med hjälp av följande CSV-data:

Nu, låt oss granska C#-koden. Stegen förblir desamma förutom en viktig skillnad: vi kommer att använda CsvDataSource-klassen för att ladda CSV-data. Följande kodexempel visar hur man genererar Word-dokumentet från en CSV-datakälla.

Utdata

Prova Aspose.Words för .NET gratis

Du kan prova Aspose.Words för .NET med en gratis tillfällig licens.

Slutsats

I denna artikel har du lärt dig hur man genererar Word-dokument från mallar med C#. Du har upptäckt hur man utnyttjar olika datakällor såsom objekt, XML, JSON och CSV för dynamisk dokumentgenerering .NET. Fördjupa dig mer i möjligheterna med .NET Word-mallbehandling genom att utforska dokumentationen, och tveka inte att kontakta oss via vårt forum.

Se även