Introduktion
Spara tid och ansträngning genom att automatisera skapandet av personliga dokument såsom rapporter, brev och fakturor med C# Mail Merge drivet av Aspose.Words för .NET. Denna guide förklarar hur du använder Aspose.Words Mail Merge Plugin för att utföra effektiv och skalbar dokumentgenerering inom dina .NET-applikationer—utan behov av MS Word eller Office Interop. Du kommer att lära dig att integrera C# mail merge för rapportautomatisering, vilket gör att du kan 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 formattering av sammanfogningsfält
- Mail Merge med regioner
- Nästlad Mail Merge
- Slutsats
Vad är Mail Merge?
Mail Merge är en metod för dynamisk generering av dokument genom att fylla i mallar med data från olika källor. Med Aspose.Words kan du sömlöst automatisera uppgifter som:
- Generera brev och fakturor med personliga detaljer.
- Skapa bulkrapporter med data från 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 olika datakällor:
- Objekt: Fyll i mallar med hjälp av klassinstanser.
- XML: Ladda strukturerade data för dynamiska fält.
- JSON: Integrera enkelt med moderna API:er.
- CSV: Utnyttja tabulär data för bulkdokumentgenerering.
- DataTable/DataSet: Använd ADO.NET för databasintegration.
Förbereda mall för Mail Merge
Mail merge-mallen är dokumentet som innehåller sammanfogningsfält som kommer att fyllas med data från din specificerade datakälla under körningen. Mallen kan vara i DOC- eller DOCX-format och kräver inte nödvändigtvis en specifik mallstil. 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 sammanfogningsfält.
- Från Infoga-menyn, välj alternativet Fält.
- Från listan Fältnamn, välj MergeField.
- Ange ett namn för sammanfogningsfältet i rutan Fältnamn och klicka på OK.
- Spara dokumentet.
Följande skärmdump 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, kör 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 klassen Document.
- Ställ in nödvändiga mail merge-alternativ, såsom Document.MailMerge.TrimWhitespaces.
- Utför mail merge med metoden Document.MailMerge.Execute(), och skicka datakällan som parameter.
- Spara det genererade dokumentet med metoden Document.Save(String).
Här är ett kodexempel som demonstrerar hur du 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 vanligtvis för att lagra och överföra data. Aspose.Words för .NET stöder också XML som datakälla för mail merge-operationer. Läs helt enkelt XML in i ett DataSet-objekt och utför mail merge. Nedan är 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 är mail merge mall som kommer att fyllas med data från XML-filen.
Denna bild representerar den första sidan av det resulterande Word-dokumentet som erhållits efter att ha utfört mail merge.
Anpassad formatering av sammanfogningsfä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-beteende vid varje sammanfogningsfält. Implementeringen av metoderna IFieldMergingCallback.FieldMerging och IFieldMergingCallback.ImageFieldMerging möjliggör anpassning av mail merge-operationen.
Nedan är ett kodexempel som demonstrerar hur man tillämpar anpassad formatering under mail merge genom den tillhandahållna exempel-mallen:
Följande implementerar klassen HandleMergeFieldAlternatingRows.
Mail Merge med regioner med C#
I vissa fall kan du behöva fylla och upprepa en specifik region inom Word-dokumentet. För sådana fall, använd mail merge med regioner. För att skapa en region, specificera både början och slutet 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 utnyttjar sammanfogningsfä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 visar hur man läser data från en databas.
Nästlade Mail Merge-regioner
Ofta är data från källan strukturerad i relationsformat. Till exempel kan “Orders” ha en en-till-många-relation med “OrderDetails”, som håller reda på poster inom en beställning. I sådana scenarier, använd nästlad mail merge. Nedan är en exempel fakturamall som passar detta scenario bra.
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 Liter 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>Pommes Frites</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 visas den 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 avancerade 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 komma igång med Aspose.Words för .NET, utforska de tillgängliga utvecklarguiderna 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.