Wprowadzenie
Zaoszczędź czas i wysiłek, automatyzując tworzenie spersonalizowanych dokumentów, takich jak raporty, listy i faktury przy użyciu C# Mail Merge zasilanego przez Aspose.Words dla .NET. Ten przewodnik wyjaśnia, jak wykorzystać Wtyczkę Mail Merge Aspose.Words do wydajnego i skalowalnego generowania dokumentów w Twoich aplikacjach .NET — bez potrzeby użycia MS Word lub Office Interop. Nauczysz się integrować C# mail merge do automatyzacji raportów, co pozwoli Ci uprościć swój przepływ pracy dotyczący raportów.
Spis treści:
- Czym jest Mail Merge?
- Źródła danych do Mail Merge
- Przygotowywanie szablonów Mail Merge
- Rozpoczęcie pracy z Aspose.Words dla .NET
- Wykonywanie Mail Merge z przykładowymi danymi
- Mail Merge z danymi XML
- Niestandardowe formatowanie pól scalanych
- Mail Merge z regionami
- Zagnieżdżony Mail Merge
- Wnioski
Czym jest Mail Merge?
Mail Merge to metodologia polegająca na dynamicznym generowaniu dokumentów przez wypełnianie szablonów danymi z różnych źródeł. Dzięki Aspose.Words, możesz bezproblemowo zautomatyzować takie zadania jak:
- Generowanie listów i faktur z personalizowanymi szczegółami.
- Tworzenie hurtowych raportów przy użyciu danych z uporządkowanych formatów, takich jak XML, JSON lub bazy danych, co umożliwia dynamiczne generowanie raportów za pomocą C# i Aspose.Words.
Źródła danych do Mail Merge
Aspose.Words obsługuje różnorodne źródła danych:
- Obiekty: Wypełnij szablony przy użyciu instancji klas.
- XML: Ładuj uporządkowane dane do dynamicznych pól.
- JSON: Łatwo integruj się z nowoczesnymi interfejsami API.
- CSV: Wykorzystuj dane tabelaryczne do masowego generowania dokumentów.
- DataTable/DataSet: Wykorzystaj ADO.NET do integracji z bazą danych.
Przygotowywanie szablonu do Mail Merge
Szablon mail merge to dokument zawierający pola scalane, które będą wypełnione danymi z określonego źródła danych podczas wykonania. Szablon może być w formacie DOC lub DOCX; nie wymaga konkretnych stylów szablonów. Wykonaj te kroki, aby stworzyć szablon mail merge:
- Otwórz swój dokument lub utwórz nowy w MS Word.
- Umieść kursor w miejscu, w którym chcesz wstawić pole scalane.
- Z menu Wstaw wybierz opcję Pole.
- Z listy Nazwy pól wybierz MergeField.
- Określ nazwę dla pola scalającego w polu Nazwa pola i kliknij OK.
- Zapisz dokument.
Poniższy zrzut ekranu ilustruje przykładowy szablon.
.NET Mail Merge API - Instalacja
Możesz zainstalować Aspose.Words dla .NET na różne sposoby:
Wykonywanie Mail Merge w dokumencie Word za pomocą C#
Gdy twój szablon będzie gotowy, wykonaj mail merge, aby wygenerować dokumenty. Oto kroki, aby przeprowadzić mail merge na przygotowanym szablonie:
- Załaduj dokument szablonu za pomocą klasy Document.
- Ustaw wymagane opcje mail merge, takie jak Document.MailMerge.TrimWhitespaces.
- Wykonaj mail merge za pomocą metody Document.MailMerge.Execute(), przekazując źródło danych jako parametr.
- Zapisz wygenerowany dokument za pomocą metody Document.Save(String).
Oto przykład kodu demonstrujący, jak zautomatyzować generowanie raportów w C# przy użyciu tablicy wartości:
Dokument Word po Mail Merge
Wykonywanie Mail Merge z użyciem źródła danych XML w C#
Pliki XML są powszechnie wykorzystywane do przechowywania i przesyłania danych. Aspose.Words dla .NET obsługuje również XML jako źródło danych do operacji mail merge. Wystarczy odczytać XML do obiektu DataSet i wykonać mail merge. Poniżej znajduje się przykładowy plik XML na nasz przypadek użycia.
<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>
Poniższy przykład kodu pobiera dane z źródła danych XML i wykonuje mail merge za pomocą C#.
Poniżej znajduje się szablon mail merge szablonu, który będzie wypełniony danymi z pliku XML.
Ten obraz przedstawia pierwszą stronę powstałego dokumentu Word uzyskanego po wykonaniu mail merge.
Niestandardowe formatowanie pól scalanych
Aspose.Words dla .NET zapewnia zaawansowaną kontrolę nad procesem mail merge. Właściwość MailMerge.FieldMergingCallback pozwala skonfigurować zachowanie mail merge, gdy napotkane jest każde pole scalane. Zastosowanie metod IFieldMergingCallback.FieldMerging i IFieldMergingCallback.ImageFieldMerging umożliwia dostosowanie operacji mail merge.
Poniżej znajduje się przykład kodu demonstrujący, jak zastosować niestandardowe formatowanie podczas mail merge z wykorzystaniem podanego przykładowego szablonu:
Poniżej znajduje się implementacja klasy HandleMergeFieldAlternatingRows.
Mail Merge z regionami w C#
W pewnych przypadkach może być konieczne wypełnienie i powtórzenie konkretnego regionu w dokumencie Word. W takich przypadkach wykorzystaj mail merge z regionami. Aby utworzyć region, określ zarówno początek, jak i koniec regionu; mail merge powtórzy ten region dla każdego rekordu w źródle danych. Poniższy przykład szablonu zawiera dwa regiony — Orders i OrderDetails — wykorzystujące pola scalane «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» oraz «TableEnd:OrderDetails».
Oto przykład kodu, który wykonuje mail merge na podstawie regionów dla wcześniej wspomnianego szablonu.
Poniższe metody ilustrują, jak odczytać dane z bazy danych.
Zagnieżdżone regiony Mail Merge
Często dane ze źródła są uporządkowane w formatach relacyjnych. Na przykład “Zamówienia” mogą mieć relację jeden-do-wielu z “Szczegółami zamówienia”, który przechowuje rekordy przedmiotów w obrębie zamówienia. W takich scenariuszach wykorzystaj zagnieżdżony mail merge. Poniżej znajduje się przykładowy szablon faktury, który dobrze pasuje do tego scenariusza.
Poniżej znajduje się źródło danych XML dla naszego przykładu zagnieżdżonego 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>Pizza BBQ Chicken</Name>
<Price>6.00</Price>
<Quantity>1</Quantity>
<ItemTotal>6.00</ItemTotal>
</Item>
<Item>
<Name>Cola 1.5 litra</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>Pizza Hawaii</Name>
<Price>4.00</Price>
<Quantity>1</Quantity>
<ItemTotal>4.00</ItemTotal>
</Item>
<Item>
<Name>Frytki</Name>
<Price>1.00</Price>
<Quantity>2</Quantity>
<ItemTotal>2.00</ItemTotal>
</Item>
</Order>
</Orders>
Odpowiadający plik OrderSchema.xsd dla tego XML to:
<?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>
Poniżej znajduje się przykład kodu wykonującego zagnieżdżony mail merge za pomocą C#.
Dokument Word po Mail Merge
Poniżej znajduje się pierwsza strona powstałego dokumentu Word uzyskanego po wykonaniu zagnieżdżonego mail merge.
Wnioski
Aspose.Words dla .NET jest kompleksowym API mail merge, które zapewnia zarówno standardowe, jak i rozszerzone funkcje odpowiednie dla aplikacji .NET. Dzięki niewielkiej ilości kodu możesz rozwijać proste lub złożone raporty z różnych źródeł danych w sposób bezproblemowy. Aby uzyskać wskazówki dotyczące najlepszych praktyk w zakresie automatyzacji generowania raportów .NET, zapoznaj się z dokumentacją. Aby rozpocząć pracę z Aspose.Words dla .NET, zapoznaj się z dostępnymi przewodnikami dla programistów i przykładowym kodem na GitHubie. Wtyczka Aspose oferuje także zaawansowane funkcjonalności do generowania raportów.
Wypróbuj Aspose.Words dla .NET za darmo
Możesz uzyskać darmową tymczasową licencję, aby przetestować Aspose.Words dla .NET bez ograniczeń. Zdobądź swoją tymczasową licencję teraz.