Automatizace vytváření personalizovaných dokumentů—jako jsou zprávy, dopisy a faktury—může výrazně zvýšit efektivitu vašeho pracovního postupu. S C# Mail Merge poháněným Aspose.Words pro .NET toho můžete dosáhnout bezproblémově. Tento průvodce vás provede používáním Aspose.Words Mail Merge Plugin pro efektivní a škálovatelné generování dokumentů ve vašich .NET aplikacích—bez potřeby MS Word nebo Office Interop. Na konci tohoto průvodce budete vybaveni pro integraci C# mail merge pro automatizaci zpráv a zjednodušení vašeho pracovního postupu při reportování.
Obsah
- Co je Mail Merge?
- Datové zdroje pro Mail Merge
- Příprava šablon pro Mail Merge
- Začínáme s Aspose.Words pro .NET
- Proveďte Mail Merge s ukázkovými daty
- Mail Merge s XML daty
- Vlastní formátování sloučených polí
- Mail Merge s regiony
- Vnořený Mail Merge
- Závěr
Co je Mail Merge?
Mail Merge je mocná metodologie pro dynamické generování dokumentů populováním šablon daty z různých zdrojů. S Aspose.Words můžete automatizovat úkoly, jako jsou:
- Generování personalizovaných dopisů a faktur.
- Vytváření hromadných zpráv pomocí strukturovaných formátů, jako jsou XML, JSON nebo databáze, což umožňuje dynamické generování zpráv s C# a Aspose.Words.
Datové zdroje pro Mail Merge
Aspose.Words podporuje různé datové zdroje, včetně:
- Objektů: Populujte šablony pomocí instancí tříd.
- XML: Načtěte strukturovaná data pro dynamická pole.
- JSON: Snadno integrujte s moderními API.
- CSV: Využijte tabulková data pro hromadné generování dokumentů.
- DataTable/DataSet: Využijte ADO.NET pro integraci databáze.
Příprava šablony pro Mail Merge
Šablona pro mail merge je dokument obsahující sloučená pole, která budou během provádění populována daty z vámi zvoleného datového zdroje. Šablona může být ve formátu DOC nebo DOCX a nevyžaduje specifický styl. Postupujte podle těchto kroků pro vytvoření šablony pro mail merge:
- Otevřete svůj dokument nebo vytvořte nový v MS Word.
- Umístěte kurzor tam, kde chcete vložit sloučené pole.
- Z nabídky Vložit vyberte možnost Pole.
- Z seznamu Názvy polí vyberte MergeField.
- Určete název pro sloučené pole v poli Název pole a klikněte na OK.
- Uložte dokument.
Následující screenshot ilustruje ukázkovou šablonu dokumentu.

.NET Mail Merge API - Instalace
Můžete nainstalovat Aspose.Words pro .NET různými metodami:
Proveďte Mail Merge v dokumentu Word pomocí C#
Jakmile je vaše šablona připravena, můžete provést mail merge pro generování dokumentů. Zde jsou kroky k provedení mail merge na vaší připravené šabloně:
- Načtěte šablonový dokument pomocí třídy Document.
- Nastavte požadované možnosti mail merge, jako je Document.MailMerge.TrimWhitespaces.
- Proveďte mail merge pomocí metody Document.MailMerge.Execute(), přičemž jako parametr předáte datový zdroj.
- Uložte vygenerovaný dokument pomocí metody Document.Save(String).
Zde je ukázka kódu, která demonstruje, jak automatizovat generování zpráv v C# pomocí pole hodnot:
Dokument Word po Mail Merge

Proveďte Mail Merge pomocí XML datového zdroje v C#
XML soubory jsou běžně používány pro uchovávání a přenos dat. Aspose.Words pro .NET podporuje XML jako datový zdroj pro operace mail merge. Jednoduše načtěte XML do objektu DataSet a proveďte mail merge. Níže je ukázkový XML soubor pro náš případ použití.
<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>
Následující ukázka kódu získává data z XML datového zdroje a provádí mail merge pomocí C#.
Níže je šablona mail merge šablona, která bude populována daty z XML souboru.

Tento obrázek představuje první stránku výsledného dokumentu Word získaného po provedení mail merge.

Vlastní formátování sloučených polí
Aspose.Words pro .NET poskytuje vylepšenou kontrolu nad procesem mail merge. Vlastnost MailMerge.FieldMergingCallback vám umožňuje konfigurovat chování mail merge, jakmile je každé sloučené pole zpracováno. Implementace metod IFieldMergingCallback.FieldMerging a IFieldMergingCallback.ImageFieldMerging umožňuje přizpůsobení operace mail merge.
Níže je ukázka kódu, která demonstruje, jak aplikovat vlastní formátování během mail merge pomocí poskytnuté ukázkové šablony:
Následující implementuje třídu HandleMergeFieldAlternatingRows.
Mail Merge s regiony pomocí C#
V některých případech může být potřeba populovat a opakovat specifickou oblast v dokumentu Word. Pro takové scénáře využijte mail merge s regiony. Chcete-li vytvořit oblast, určete jak začátek, tak konec oblasti; mail merge pak tuto oblast opakuje pro každý záznam v datovém zdroji. Následující příklad šablony obsahuje dvě oblasti—Objednávky a Podrobnosti objednávky—využívající sloučená pole «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» a «TableEnd:OrderDetails».

Zde je ukázka kódu, která provádí mail merge na základě regionů pro výše zmíněnou šablonu.
Následující metody ilustrují, jak načíst data z databáze.
Vnořený Mail Merge
Často jsou data ze zdroje strukturována v relačních formátech. Například “Objednávky” mohou mít vztah jedna k mnoha s “Podrobnostmi objednávky,” které uchovávají záznamy o položkách v objednávce. V takových scénářích využijte vnořený mail merge. Níže je ukázková šablona faktury, která pro tento scénář dobře vyhovuje.

Následující je XML datový zdroj pro náš příklad vnořeného 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>
Odpovídající OrderSchema.xsd soubor pro tento XML je:
<?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>
Následující ukázka kódu provádí vnořený mail merge pomocí C#.
Dokument Word po Mail Merge
Níže je první stránka výsledného dokumentu Word získaného po provedení vnořeného mail merge.

Závěr
Aspose.Words pro .NET je komplexní API pro mail merge, které poskytuje jak standardní, tak rozšířené funkce vhodné pro .NET aplikace. S pouhými několika řádky kódu můžete bezproblémově vyvinout jednoduché nebo složité zprávy z různých datových zdrojů. Pro pokyny k nejlepším praktikám automatizovaného generování zpráv v .NET se podívejte do dokumentace. Chcete-li začít s Aspose.Words pro .NET, prozkoumejte dostupné vývojářské příručky a ukázkový kód na GitHubu. Aspose Plugin také nabízí pokročilé funkce pro generování zpráv.
Vyzkoušejte Aspose.Words pro .NET zdarma
Můžete získat bezplatnou dočasnou licenci k vyzkoušení Aspose.Words pro .NET bez omezení. Získejte svou dočasnou licenci nyní.