Automatizarea creării documentelor personalizate – cum ar fi rapoartele, scrisorile și facturile – poate îmbunătăți în mod semnificativ eficiența fluxului de lucru. cu C# Mail Merge alimentat de Aspose.Words pentru .NET, puteți realiza acest lucru fără probleme. acest ghid vă va duce prin utilizarea plugin-ului Askos.Scripture pentru a efectua o generație eficientă și scalabilă de documente în cadrul aplicațiilor dvs. .NET – fără a avea nevoie de MS Word sau Office Interop.

conținut

Ce este Mail Merge?

Mail Merge este o metodologie puternică pentru generarea dinamică a documentelor prin popularea șabloanelor cu date din diferite surse. Aspose.Words vă permite să automatizați sarcinile cum ar fi:

  • Generarea scrisorilor și facturilor personalizate.
  • Creați rapoarte în masă folosind formate structurate, cum ar fi XML, JSON sau baze de date, permițând generația dinamică a raporturilor cu C# și Aspose.Words.

Sursele de date pentru Mail Merge

Aspose.Words susține o varietate de surse de date, inclusiv:

  • Obiectele: Modele populare folosind instante de clasă.
  • XML: Încărcați date structurate pentru câmpurile dinamice.
  • JSON: Se integrează cu ușurință cu API-urile moderne.
  • CSV: Livrare a datelor tabloului pentru generarea în masă a documentelor.
  • DataTable / DataSet: Utilizați ADO.NET pentru integrarea datelor de bază.

Pregătirea Templat pentru Mail Merge

Șablonul de mișcare de poștă este documentul care conține câmpuri de mișcare care vor fi populate cu date din sursa de date specificată în timpul executării. Șablonul poate fi în format DOC sau DOCX și nu necesită un stil specific. Urmați aceste pași pentru a crea un șablon de mișcare de poștă:

  • Deschideți documentul sau creați un nou în MS Word.
  • Puneți cursorul acolo unde doriți să introduceți un câmp de fuzionare.
  • Din meniul Insert, selectați opțiunea Field.
  • Din lista Numele câmpului, selectați MergeField.
  • Specificați un nume pentru câmpul de fuzionare în caseta Numele câmpului și faceți clic pe OK.
  • salvează documentul.

Următorul ecran ilustră o Modelul de eșantion documentă .

Mail Merge Template

.NET Mail Merge API - Instalare

Puteți instala Aspose.Words pentru .NET prin diferite metode:

Perform Mail Merge în Documentul Word folosind C#

Odată ce șablonul dvs. este gata, puteți efectua fuzionarea poștală pentru a genera documente.Aici sunt pașii pentru a efectua fuzionarea poștală pe șablonul dvs. pregătit:

Iată un eșantion de cod care demonstrează cum să se genereze rapoarte automată în C# folosind o serie de valori:

Documentul Word după aderarea poștalelor

Execute Mail Merge in C#

Perform Mail Merge folosind XML Data Source în C#

Fișierele XML sunt utilizate în mod obișnuit pentru stocarea și transferul datelor. Aspose.Words pentru .NET susține XML ca sursă de date pentru operațiunile de fuzionare prin poștă. DataSet Obiectul și executați mișcarea poștală. mai jos este un fișier XML de eșantion pentru cazul nostru de utilizare.

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

Următorul eșantion de cod retrage datele dintr-o sursă de date XML și execută fuzia de e-mail folosind C#.

Mai jos se găsește e-mailul Templul Acestea vor fi populate cu date din fișierul XML.

Mail Merge Template for XML

Această imagine reprezintă prima pagină a documentului Word care rezultă obținut după executarea fuziei de poștă.

Execute Mail Merge with XML in C#

Formatarea personalizată a câmpurilor de mișcare {#formatarea personalizată a câmpurilor de mișcare}

Aspose.Words pentru .NET oferă un control îmbunătățit asupra procesului de fuzionare a poștalelor. Articole cu eticheta MailMergingCallback proprietatea vă permite să configurați comportamentul de fuzionare prin poștă pe măsură ce se întâlnește fiecare câmp. IFieldMergingCallback.FieldMerging şi IFieldMergingCallback.ImageFieldMerging Metodele permit personalizarea operațiunii de fuzionare a poștalelor.

Mai jos este un eșantion de cod care demonstrează cum să se aplice formatul personalizat în timpul fuziei de poștă prin intermediul șablonului de exemplu furnizat:

Următoarea implementează clasa HandleMergeFieldAlternatingRows.

Mail Merge cu Regiuni folosind C#

În unele cazuri, poate fi necesar să populați și să repetați o anumită zonă în documentul Word. Pentru astfel de scenarii, folosiți fuzionarea poștală cu regiuni. pentru a crea o regiune, specificați atât începutul, cât și sfârșitul regiunii; după aceea, fusionarea e-mailului va repetă această regiunea pentru fiecare înregistrare din sursa de date. Exemplul de șablonă de mai jos conține două zone - Ordini și Detalii de ordine - folosind câmpurile de fuziune «TableStart:Ordinare», «Detații de comandă» și «Descrieri de ordin».

Mail Merge Template with Regions

Iată un eșantion de cod care execută fuzionarea poștală în funcție de regiuni pentru cele menționate anterior Templul.

Următoarele metode ilustrează modul de a citi date dintr-o bază de date.

Postul Nested Mail se alătură

Adesea, datele de la sursă sunt structurate în formate relaționale. De exemplu, “Ordinele” pot avea o relație de unul la altul cu “Detațiile de comandă”, care păstrează înregistrările de articole în cadrul unei comenzi. În astfel de scenarii, folosiți un amestec de poștă nested. Mai jos este un eșantion Templu de factură Acest scenariu se potrivește foarte bine.

Mail Merge Template with Regions

Următorul este o sursă de date XML pentru exemplul nostru de fuzionare de e-mail 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>

Fișierul OrderSchema.xsd corespunzător pentru acest XML este:

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

Următorul eșantion de cod execută fuzionarea poștală născută folosind C#.

Documentul Word după aderarea poștalelor

Mai jos este prima pagină a documentului Word rezultatul obținut după executarea fuziei de poștă.

Word Document after Mail Merge

concluziile

Aspose.Words pentru .NET este o API cuprinzătoare de mesagerie care oferă atât caracteristici standard și extinse potrivite pentru aplicațiile .NET. Cu doar câteva linii de cod, puteți dezvolta rapoarte simple sau complexe din diverse surse de date fără întârziere. DocumentarePentru a începe cu Aspose.Words pentru .NET, explorați disponibilul Ghidul dezvoltatorului Codul de eșantionare pe GitHubPluginul Aspose oferă, de asemenea, funcții avansate pentru generarea de rapoarte.

Încercați Aspose.Words pentru .NET pentru gratuit

Puteți obține o licență temporară gratuită pentru a încerca Aspose.Words pentru .NET fără restricții. Obțineți licența dvs. temporară acum.

More in this category