Introduktion
Att automatisera skapandet av personliga dokument—såsom rapporter, brev och fakturor—kan spara både tid och ansträngning. Med C# Mail Merge drivet av Aspose.Words för .NET kan du uppnå detta sömlöst. Denna guide kommer att vägleda dig genom att använda Aspose.Words Mail Merge-plugin för att utföra effektiv och skalbar dokumentgenerering inom dina .NET-applikationer—utan att behöva MS Word eller Office Interop. I slutet kommer du att vara rustad att integrera C# mail merge för rapportautomatisering och effektivisera ditt rapporteringsarbetsflöde.
Innehåll:
- Vad är Mail Merge?
- Datakällor för Mail Merge
- Förbereda Mail Merge-mallar
- Komma igång med Aspose.Words för .NET
- Utför Mail Merge med exempeldata
- Mail Merge med XML-data
- Anpassad formatering av sammanslagningsfält
- Mail Merge med regioner
- Nästlad Mail Merge
- Slutsats
Vad är Mail Merge?
Mail Merge är en kraftfull metod för att dynamiskt generera dokument genom att fylla i mallar med data från olika källor. Med Aspose.Words kan du automatisera uppgifter som:
- Generera personliga brev och fakturor.
- Skapa massrapporter med strukturerade format som XML, JSON eller databaser, vilket möjliggör dynamisk rapportgenerering med C# och Aspose.Words.
Datakällor för Mail Merge
Aspose.Words stöder en mängd olika datakällor, inklusive:
- Objekt: Fyll i mallar med hjälp av klassinstanser.
- XML: Ladda strukturerad data för dynamiska fält.
- JSON: Integrera enkelt med moderna API:er.
- CSV: Utnyttja tabulär data för massdokumentgenerering.
- DataTable/DataSet: Använd ADO.NET för databasintegration.
Förbereda Mall för Mail Merge
Mail merge-mallen är dokumentet som innehåller sammanslagningsfält som kommer att fyllas med data från din angivna datakälla under körning. Mallen kan vara i DOC- eller DOCX-format och kräver ingen specifik stil. Följ dessa steg för att skapa en mail merge-mall:
- Öppna ditt dokument eller skapa ett nytt i MS Word.
- Placera markören där du vill infoga ett sammanslagningsfält.
- Från Infoga-menyn, välj alternativet Fält.
- Från listan över Fältnamn, välj MergeField.
- Specificera ett namn för sammanslagningsfältet i rutan Fältnamn och klicka på OK.
- Spara dokumentet.
Följande skärmbild illustrerar ett exempel på mall.

.NET Mail Merge API - Installation
Du kan installera Aspose.Words för .NET genom olika metoder:
Utför Mail Merge i Word-dokument med C#
När din mall är redo kan du utföra mail merge för att generera dokument. Här är stegen för att utföra mail merge på din förberedda mall:
- Ladda mall-dokumentet med hjälp av Document klassen.
- Ställ in nödvändiga mail merge-alternativ, såsom Document.MailMerge.TrimWhitespaces.
- Utför mail merge med hjälp av metoden Document.MailMerge.Execute(), och passera datakällan som parameter.
- Spara det genererade dokumentet med hjälp av metoden Document.Save(String).
Här är ett kodexempel som demonstrerar hur man automatiserar rapportgenerering i C# med en array av värden:
Word-dokument efter Mail Merge

Utför Mail Merge med XML-datakälla i C#
XML-filer används ofta för att lagra och överföra data. Aspose.Words för .NET stöder XML som en datakälla för mail merge-operationer. Läs helt enkelt XML-filen in i ett DataSet objekt och utför mail merge. Nedan finns en exempel-XML-fil för vårt användningsfall.
<customers>
<customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
<customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
<customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
<customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>
Följande kodexempel hämtar data från en XML-datakälla och utför mail merge med C#.
Nedan finns mail merge mall som kommer att fyllas med data från XML-filen.

Denna bild representerar första sidan av det resulterande Word-dokumentet som erhållits efter att ha utfört mail merge.

Anpassad formatering av sammanslagningsfält
Aspose.Words för .NET ger förbättrad kontroll över mail merge-processen. Egenskapen MailMerge.FieldMergingCallback gör att du kan konfigurera mail merge-beteendet när varje sammanslagningsfält möts. Genom att implementera metoderna IFieldMergingCallback.FieldMerging och IFieldMergingCallback.ImageFieldMerging kan du anpassa mail merge-operationen.
Nedan finns ett kodexempel som demonstrerar hur man tillämpar anpassad formatering under mail merge genom den angivna exempel-mallen:
Följande implementerar klassen HandleMergeFieldAlternatingRows.
Mail Merge med regioner med C#
I vissa fall kan du behöva fylla i och upprepa en specifik region inom Word-dokumentet. För sådana scenarier, använd mail merge med regioner. För att skapa en region, specificera både början och slut av regionen; mail merge kommer då att upprepa denna region för varje post i datakällan. Exempel-mallen nedan innehåller två regioner—Orders och OrderDetails—som använder sammanslagningsfälten «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» och «TableEnd:OrderDetails».

Här är ett kodexempel som utför mail merge baserat på regioner för den tidigare nämnda mallen.
Följande metoder illustrerar hur man läser data från en databas.
Nästlade Mail Merge-regioner
Ofta är data från källan strukturerad i relationella format. Till exempel kan “Orders” ha en en-till-många-relation med “OrderDetails,” som håller register över artiklar inom en beställning. I sådana scenarier, använd nästlad mail merge. Nedan finns en exempel fakturamal som passar detta scenario väl.

Följande är en XML-datakälla för vårt exempel med nästlad mail merge.
<?xml version="1.0" encoding="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
<Order>
<Number>23</Number>
<Address>Nelson Street</Address>
<Suburb>Howick</Suburb>
<City>Auckland</City>
<Phonenumber>543 1234</Phonenumber>
<Date>03/01/2010</Date>
<Total>14.00</Total>
<Item>
<Name>BBQ Chicken Pizza</Name>
<Price>6.00</Price>
<Quantity>1</Quantity>
<ItemTotal>6.00</ItemTotal>
</Item>
<Item>
<Name>1.5 Litre Coke</Name>
<Price>4.00</Price>
<Quantity>2</Quantity>
<ItemTotal>8.00</ItemTotal>
</Item>
</Order>
<Order>
<Number>10</Number>
<Address>Parkville Avenue</Address>
<Suburb>Pakuranga</Suburb>
<City>Auckland</City>
<Phonenumber>548 7342</Phonenumber>
<Date>05/03/2010</Date>
<Total>6.00</Total>
<Item>
<Name>Hawaiian Pizza</Name>
<Price>4.00</Price>
<Quantity>1</Quantity>
<ItemTotal>4.00</ItemTotal>
</Item>
<Item>
<Name>Fries</Name>
<Price>1.00</Price>
<Quantity>2</Quantity>
<ItemTotal>2.00</ItemTotal>
</Item>
</Order>
</Orders>
Den motsvarande OrderSchema.xsd-filen för denna XML är:
<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Orders">
<xs:complexType>
<xs:sequence>
<xs:element name="Order">
<xs:complexType>
<xs:sequence>
<xs:element name="Number"/>
<xs:element name="Address"/>
<xs:element name="Suburb"/>
<xs:element name="City"/>
<xs:element name="Phonenumber"/>
<xs:element name="Date"/>
<xs:element name="Total"/>
<xs:element name="Item">
<xs:complexType>
<xs:sequence>
<xs:element name="Name"/>
<xs:element name="Price"/>
<xs:element name="Quantity"/>
<xs:element name="ItemTotal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Följande kodexempel utför den nästlade mail merge med C#.
Word-dokument efter Mail Merge
Nedan finns första sidan av det resulterande Word-dokumentet som erhållits efter att ha utfört den nästlade mail merge.

Slutsats
Aspose.Words för .NET är ett omfattande mail merge-API som erbjuder både standard- och utökade funktioner som är lämpliga för .NET-applikationer. Med bara några rader kod kan du utveckla enkla eller komplexa rapporter från olika datakällor sömlöst. För vägledning om bästa metoder för automatiserad rapportgenerering i .NET, konsultera dokumentationen. För att börja med Aspose.Words för .NET, utforska de tillgängliga utvecklarhandböckerna och exempel på kod på GitHub. Aspose-plugin erbjuder också avancerade funktioner för rapportgenerering.
Prova Aspose.Words för .NET gratis
Du kan få en gratis temporär licens för att prova Aspose.Words för .NET utan begränsningar. Få din temporära licens nu.