Automatisering av skapandet av personliga dokument—som rapporter, brev och fakturor—kan avsevärt öka effektiviteten i ditt arbetsflöde. 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 behov av MS Word eller Office Interop. I slutet av denna guide kommer du att vara rustad att integrera C# mail merge för rapportautomatisering och effektivisera ditt rapporteringsarbetsflöde.


Innehåll


Vad är Mail Merge?

Mail Merge är en kraftfull metodologi 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 bulkrapporter med hjälp av 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 bulkdokumentgenerering.
  • DataTable/DataSet: Använd ADO.NET för databasintegration.

Förbereda Mallar för Mail Merge

Mail merge-mallen är dokumentet som innehåller sammanfogningsfä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:

  1. Öppna ditt dokument eller skapa ett nytt i MS Word.
  2. Placera markören där du vill infoga ett sammanfogningsfält.
  3. Från Infoga-menyn, välj Fält-alternativet.
  4. Från listan med Fältnamn, välj MergeField.
  5. Ange ett namn för sammanfogningsfältet i rutan Fältnamn och klicka på OK.
  6. Spara dokumentet.

Följande skärmdump illustrerar ett exempel på mall dokument.

Mail Merge Template

.NET Mail Merge API - Installation

Du kan installera Aspose.Words för .NET genom olika metoder:

Utföra 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:

  1. Ladda mall-dokumentet med hjälp av Document klassen.
  2. Ställ in nödvändiga mail merge-alternativ, som Document.MailMerge.TrimWhitespaces.
  3. Utför mail merge med hjälp av metoden Document.MailMerge.Execute(), genom att skicka datakällan som parameter.
  4. 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

Execute Mail Merge in C#

Utföra 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 datakälla för mail merge-operationer. Läs helt enkelt XML till ett DataSet objekt och utför mail merge. Nedan är ett exempel på 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 hjälp av C#.

Nedan är mail merge mall som kommer att fyllas med data från XML-filen.

Mail Merge Template for XML

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

Execute Mail Merge with XML in C#

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-beteendet när varje sammanfogningsfält möts. Genom att implementera metoderna IFieldMergingCallback.FieldMerging och IFieldMergingCallback.ImageFieldMerging kan du anpassa mail merge-operationen.

Nedan är ett kodexempel som demonstrerar hur man tillämpar anpassad formatering under mail merge genom det angivna exempelmall:

Följande implementerar HandleMergeFieldAlternatingRows klassen.

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, ange både början och slutet av regionen; mail merge kommer då att upprepa denna region för varje post i datakällan. Exempelmallarna nedan innehåller två regioner—Orders och OrderDetails—som utnyttjar sammanfogningsfälten «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» och «TableEnd:OrderDetails».

Mail Merge Template with Regions

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ästlad Mail Merge

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 varor inom en beställning. I sådana scenarier, använd nästlad mail merge. Nedan är en exempel fakturamal som passar detta scenario väl.

Mail Merge Template with Regions

Följande är en XML-datakälla för vårt exempel på 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 hjälp av C#.

Word-dokument efter Mail Merge

Nedan är första sidan av det resulterande Word-dokumentet som erhållits efter att ha utfört den nästlade mail merge.

Word Document after 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 få rader kod kan du utveckla enkla eller komplexa rapporter från olika datakällor sömlöst. För vägledning om .NET automatiserad rapportgenerering bästa metoder, 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.