Wprowadzenie
Zaoszczędź czas i wysiłek, automatyzując tworzenie spersonalizowanych dokumentów, takich jak raporty, listy i faktury, za pomocą C# Mail Merge zasilanego przez Aspose.Words dla .NET. Ten przewodnik wyjaśnia, jak wykorzystać Wtyczkę Mail Merge Aspose.Words do efektywnej i skalowalnej generacji dokumentów w swoich aplikacjach .NET—bez potrzeby korzystania z MS Word lub Office Interop. Nauczysz się integrować C# mail merge do automatyzacji raportów, co pozwoli Ci uprościć swój proces raportowania.
Zawartość:
- Czym jest Mail Merge?
- Źródła danych dla Mail Merge
- Przygotowanie szablonów Mail Merge
- Pierwsze kroki z Aspose.Words dla .NET
- Wykonaj Mail Merge z próbnymi danymi
- Mail Merge z danymi XML
- Niestandardowe formatowanie pól scalania
- Mail Merge z regionami
- Zagnieżdżony Mail Merge
- Zakończenie
Czym jest Mail Merge?
Mail Merge to metodologia dynamicznego generowania dokumentów poprzez wypełnianie szablonów danymi z różnych źródeł. Dzięki Aspose.Words możesz bezproblemowo automatyzować takie zadania jak:
- Generowanie listów i faktur z personalizowanymi danymi.
- Tworzenie zbiorczych raportów z danych w ustrukturyzowanych formatach, takich jak XML, JSON czy bazy danych, co umożliwia dynamiczną generację raportów z C# i Aspose.Words.
Źródła danych dla Mail Merge
Aspose.Words obsługuje różnorodne źródła danych:
- Obiekty: Wypełnianie szablonów przy użyciu instancji klas.
- XML: Ładowanie strukturalnych danych do pól dynamicznych.
- JSON: Łatwa integracja z nowoczesnymi interfejsami API.
- CSV: Wykorzystanie danych tabelarycznych do masowej generacji dokumentów.
- DataTable/DataSet: Wykorzystanie ADO.NET do integracji z bazami danych.
Przygotowanie szablonu do Mail Merge
Szablon mail merge to dokument zawierający pola scalania, które będą wypełniane danymi z określonego źródła danych podczas wykonania. Szablon może być w formacie DOC lub DOCX; nie wymaga koniecznie konkretnego stylu szablonu. Wykonaj te kroki, aby stworzyć szablon mail merge:
- Otwórz swój dokument lub stwórz nowy w MS Word.
- Umieść kursor w miejscu, w którym chcesz wstawić pole scalania.
- Z menu Wstaw wybierz opcję Pole.
- Z listy Nazwy pól wybierz MergeField.
- Określ nazwę dla pola scalania w polu Nazwa pola i kliknij OK.
- Zapisz dokument.
Poniższy zrzut ekranu ilustruje przykładowy szablon.
API Mail Merge w .NET - Instalacja
Możesz zainstalować Aspose.Words dla .NET na różne sposoby:
Wykonaj Mail Merge w dokumencie Word używając C#
Gdy szablon jest gotowy, wykonaj mail merge, aby wygenerować dokumenty. Oto kroki, aby wykonać mail merge na przygotowanym szablonie:
- Załaduj dokument szablonu używając klasy Document.
- Ustaw wymagane opcje mail merge, takie jak Document.MailMerge.TrimWhitespaces.
- Wykonaj mail merge używając metody Document.MailMerge.Execute(), przekazując jako parametr źródło danych.
- Zapisz wygenerowany dokument używając metody Document.Save(String).
Oto przykład kodu demonstrujący, jak zautomatyzować generację raportów w C# używając tablicy wartości:
Dokument Word po Mail Merge
Wykonaj Mail Merge używając źródła danych XML w C#
Pliki XML są powszechnie wykorzystywane do przechowywania i przesyłania danych. Aspose.Words dla .NET również obsługuje XML jako źródło danych dla operacji mail merge. Wystarczy odczytać XML do obiektu DataSet i wykonać mail merge. Poniżej znajduje się przykładowy plik XML dla naszego przypadku.
<customers>
<customer Name="John Ben Jan" ID="1" Domain="Historia" City="Boston"/>
<customer Name="Lisa Lane" ID="2" Domain="Chemia" City="LA"/>
<customer Name="Dagomir Zits" ID="3" Domain="Heraldyka" 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 używając C#.
Poniżej znajduje się szablon mail merge szablon, który zostanie wypełniony danymi z pliku XML.
Ten obrazek przedstawia pierwszą stronę wygenerowanego dokumentu Word uzyskanego po wykonaniu mail merge.
Niestandardowe formatowanie pól scalania
Aspose.Words dla .NET zapewnia ulepszoną kontrolę nad procesem mail merge. Właściwość MailMerge.FieldMergingCallback pozwala skonfigurować zachowanie mail merge w miarę napotykania każdego pola scalania. Realizacja 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 przez podany szablon:
Poniżej przedstawiono implementację klasy HandleMergeFieldAlternatingRows.
Mail Merge z regionami w C#
W niektórych przypadkach może być konieczne wypełnienie i powtórzenie określonego 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—Zamówienia i SzczegółyZamówienia—wykorzystujące pola scalania «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» oraz «TableEnd:OrderDetails».
Oto przykład kodu, który wykonuje mail merge w oparciu o regiony dla wcześniej wspomnianego szablonu.
Poniższe metody ilustrują, jak odczytać dane z bazy danych.
Zagnieżdżone regiony Mail Merge
Często dane z źródła są strukturalizowane w formatach relacyjnych. Na przykład, “Zamówienia” mogą mieć relację jeden-do-wielu z “SzczegółamiZamówienia”, które przechowują rekordy przedmiotów w ramach zamówienia. W takich scenariuszach wykorzystaj zagnieżdżony mail merge. Poniżej znajduje się przykładowy szablon faktury, który dobrze nadaje się do tego scenariusza.
Poniżej znajduje się źródło danych XML dla naszego przykładu z zagnieżdżonym 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>1.5 Litry Coca-Cola</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 Hawajska</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>
Odpowiedni 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ższy przykład kodu wykonuje zagnieżdżony mail merge używając C#.
Dokument Word po Mail Merge
Poniżej znajduje się pierwsza strona wygenerowanego dokumentu Word uzyskanego po wykonaniu zagnieżdżonego mail merge.
Zakończenie
Aspose.Words dla .NET jest wszechstronnym API mail merge, które zapewnia zarówno standardowe, jak i rozszerzone funkcje odpowiednie dla aplikacji .NET. W zaledwie kilku linijkach kodu możesz stworzyć proste lub złożone raporty z różnorodnych źródeł danych bezproblemowo. Aby uzyskać wskazówki na temat najlepszych praktyk automatyzacji generacji raportów w .NET, zapoznaj się z dokumentacją. Aby rozpocząć korzystanie z Aspose.Words dla .NET, eksploruj dostępne przewodniki dla programistów oraz przykładowy kod na GitHubie. Wtyczka Aspose oferuje również zaawansowane funkcjonalności do generacji raportów.
Wypróbuj Aspose.Words dla .NET za darmo
Możesz uzyskać tymczasową licencję, aby wypróbować Aspose.Words dla .NET bez ograniczeń. Zdobądź swoją tymczasową licencję teraz.