L’automatització de la creació de documents personalitzats, com ara informes, lletres i factures, pot millorar significativament l’eficiència en el seu flux de treball. Amb C# Mail Merge alimentat per Aspose.Words per a .NET, pots aconseguir-ho sense cap mena de seguretat. Aquesta guia us passarà utilitzant el Plugin d’Assumpció del correu de Word** per realitzar una generació eficaç i escalable de document dins de les seves aplicacions .Net - sense necessitat de MS Word o Office Interop.

Contingut

Què és Mail Merge}

Mail Merge és una metodologia poderosa per a la generació dinàmica de documents populant temples amb dades de diverses fonts. amb Aspose.Words, es poden automatitzar tasques com ara:

  • Generar cartes i factures personalitzades.
  • Crear informes en massa utilitzant formats estructurats com XML, JSON, o bases de dades, permetent la generació d’informes dinàmica amb C# i Aspose.Words**.

Fonts de dades per a Mail Merge

Aspose.Words dóna suport a una varietat de fonts de dades, incloent:

  • Objectes: Models populars utilitzant instàncies de classe.
  • XML: Carregar dades estructurades per a camps dinàmics.
  • JSON: fàcilment integrat amb les APIs modernes.
  • CSV: Lliurament de dades de taula per a la generació de documents en massa.
  • DataTable / DataSet: Utilitza ADO.NET per a la integració de bases de dades.

Preparació de temples per a Mail Merge

El model de fusió de correu electrònic és el document que conté camps de fusió que es popularan amb dades de la seva font de dades especificada durant l’execució. El model pot ser en format DOC o DOCX i no requereix un estil específic:

  • Obrir el document o crear un nou en MS Word.
  • Posar el cursor on voleu inserir un camp de fusi.
  • Des del menú Insert, seleccioneu l’opció Fili.
  • Des de la llista Noms de camp, seleccioneu MergeField.
  • Especifica un nom per al camp de fusió a la casella Nom de camp i feu clic a OK.
  • Salvem el document.

The following screenshot illustrates a Models de mostra document.

Mail Merge Template

.NET Mail Merge API - Instal·lació

Podeu instal·lar Aspose.Words per .NET a través de diferents mètodes:

Performan Mail Merge en el Document de Word utilitzant C#

Una vegada que el teu model està preparat, pots executar la fusió de correu per generar documents.Aquí són els passos per realitzar la fusió de correu en el teu model preparat:

Aquí teniu una mostra de codi que demostra com generar informes automàtics en C# amb una sèrie de valors**:

Document de paraula després de la mescla

Execute Mail Merge in C#

Performan Mail Merge utilitzant XML Data Source en C#

XML files are commonly utilized for storing and transferring data. Aspose.Words for .NET supports XML as a data source for mail merge operations. Simply read the XML into a Informació object and execute the mail merge. Below is a sample XML file for our use case.

<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>

La mostra de codi següent recupera dades d’una font de dades XML i executa la fusió de correu utilitzant C#.

Below is the mail merge Temple that will be populated with data from the XML file.

Mail Merge Template for XML

Aquesta imatge representa la primera pàgina del document Word resultant obtingut després d’executar la fusió de correu.

Execute Mail Merge with XML in C#

Formatatge personalitzat dels camps de barreja

Aspose.Words for .NET provides enhanced control over the mail merge process. The MailMerge.FieldMergingCallback property allows you to configure mail merge behavior as each merge field is encountered. Implementing the IfieldMergingCallback.FieldMerging and IFieldMergingCallback.ImageFieldMerging methods enables customization of the mail merge operation.

A continuació hi ha una mostra de codi que demostra com aplicar la formatació personalitzada durant la fusió de correu a través de l’exemple proporcionat:

El següent implementa la classe HandleMergeFieldAlternatingRows.

Mail Merge amb Regions utilitzant C#

En alguns casos, pot ser que necessiteu localitzar i repetir una regió específica dins del document de Word. Per a aquests escenaris, utilitzeu la fusió de correu amb regions. Per crear una regió, especifiqueu tant el començament com el final de la regió; la fusió de correu repetirà llavors aquesta regió per a cada registre en la font de dades. L’exemple de model a continuació conté dues regions - Ordres i Detalls d’ordre - utilitzant els camps de fusió «TableStart:Ordres», «TableEnd:Ordres», «TableStart:OrdresDetails» i «TableEnd:OrdresDetails».

Mail Merge Template with Regions

Here is a code sample that executes mail merge based on regions for the previously mentioned Temple.

Els següents mètodes il·lustren com llegir dades d’una base de dades.

Nosted Mail Merge

Often, data from the source is structured in relational formats. For example, “Orders” may have a one-to-many relationship with “OrderDetails,” which keeps records of items within an order. In such scenarios, utilize nested mail merge. Below is a sample Templat de facturació that suits this scenario well.

Mail Merge Template with Regions

El següent és una font de dades XML per a l’exemple de la nostra fusió de correu Nested.

<?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>

El fitxer OrderSchema.xsd corresponent per a aquest XML és:

<?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>

La mostra de codi següent executa la fusió de correu nestada utilitzant C#.

Document de paraula després de la mescla

A continuació es troba la primera pàgina del document Word resultant obtingut després d’executar la fusió de correu.

Word Document after Mail Merge

Conclusió

Aspose.Words for .NET is a comprehensive mail merge API that provides both standard and extended features suitable for .NET applications. With just a few lines of code, you can develop simple or complex reports from diverse data sources seamlessly. For guidance on the .NET automated report generation best practices, consult the Documentació. To begin with Aspose.Words for .NET, explore the available Guia del desenvolupador and sample code on El GitHubEl Plugin Aspose també ofereix funcionalitats avançades per a la generació de informes.

Prova Aspose.Words per a .NET per a lliure

You can obtain a free temporary license to try Aspose.Words for .NET without limitations. Obtenir la seva llicència temporal ara.

More in this category