Generowanie Word z szablonu w C#

Automatyzacja generowania dokumentów ma kluczowe znaczenie dla firm w celu tworzenia dynamicznych raportów, faktur i listów. Dzięki Aspose.Words Mail Merge dla .NET możesz efektywnie wypełniać szablony Word danymi z różnych źródeł, w tym obiektów, CSV, JSON i XML. Ten przewodnik pokazuje, jak wykorzystać Mail Merge w C# do uproszczenia i automatyzacji procesów dokumentacyjnych, skupiając się szczególnie na dynamicznym tworzeniu dokumentów Word w C# .NET.


Tematy omówione:


Przegląd Mail Merge dla .NET

Aspose.Words Mail Merge dla .NET umożliwia programistom generowanie spersonalizowanych dokumentów z wcześniej zdefiniowanych szablonów zawierających pola do scalania. Wtyczka jest zaprojektowana do bezproblemowej integracji w środowisku .NET, oferując możliwości:

  • Dynamically populate templates with data, supporting .NET framework word document generation.
  • Wydajne generowanie dokumentów hurtowych, wykorzystując .NET mail merge solution for large datasets.
  • Utrzymanie spójnego formatowania w całych rezultatach, skutecznie wspierając C# word document template best practices.

Kluczowe cechy:

  1. Wsparcie dla wielu źródeł: Użyj danych z obiektów, baz danych, XML, JSON i CSV do tworzenia spersonalizowanych dokumentów Word w C#.
  2. Wysoka wydajność: Efektywne przetwarzanie dużych zbiorów danych i operacji hurtowych dla dynamicznego tworzenia dokumentów Word z .NET Core.
  3. Personalizowane szablony: Twórz szablony z miejscami na wstawianie danych, wykorzystując możliwości .NET word mail merge automation.

Instalacja

Zainstaluj Aspose.Words korzystając z NuGet:

PM> Install-Package Aspose.Words

Generowanie dokumentu Word z szablonu za pomocą obiektów C#

Najpierw zobaczmy, jak wypełnić szablon Word za pomocą obiektów C#. Aby to zilustrować, stworzymy dokument Word (DOC/DOCX) z następującymi miejscami jako treścią dokumentu:

<<[sender.Name]>> mówi: "<<[sender.Message]>>."

Tutaj sender jest instancją klasy, którą użyjemy do wypełniania szablonu za pomocą podejścia C# generuj dokument Word z bazy danych.

Teraz możemy użyć silnika raportowania Aspose.Words, aby wygenerować dokument Word z szablonu i instancji klasy Sender, wykonując następujące kroki:

  • Stwórz instancję klasy Document i zainicjalizuj ją ścieżką do szablonu Word’a.
  • Stwórz i zainicjalizuj obiekt klasy Sender.
  • Zainicjuj klasę ReportingEngine.
  • Wypełnij szablon używając ReportingEngine.BuildReport(), która przyjmuje instancję dokumentu, źródło danych i nazwę źródła danych jako parametry.
  • Zapisz wygenerowany dokument Word używając metody Document.Save().

Poniższy fragment kodu pokazuje, jak wygenerować dokument Word z szablonu w C#.

Wynik

Generowanie dokumentu Word z źródła danych XML w C#

Aby wygenerować dokument Word z źródła danych XML, wykorzystamy bardziej kompleksowy szablon Word z następującymi miejscami:

<<foreach [in persons]>>Imię: <<[Name]>>, Wiek: <<[Age]>>, Data urodzenia: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Średni wiek: <<[persons.Average(p => p.Age)]>>

Źródło danych XML użyte w tym przykładzie przedstawiono poniżej.

Aby stworzyć dokument Word z źródła danych XML, wykonaj te kroki:

  • Stwórz instancję klasy Document i zainicjalizuj ją ścieżką do szablonu Word’a.
  • Stwórz instancję klasy XmlDataSource i zainicjalizuj ją ścieżką do pliku XML.
  • Zainicjuj klasę ReportingEngine.
  • Użyj metody ReportingEngine.BuildReport() jak wcześniej, aby wypełnić szablon Word.
  • Zapisz wygenerowany dokument Word używając metody Document.Save().

Oto fragment kodu demonstrujący, jak wygenerować dokument Word z źródła danych XML w C#.

Wynik

Generowanie dokumentu Word z źródła danych JSON w C#

Następnie zbadajmy, jak wygenerować dokument Word przy użyciu źródła danych JSON. W tym przykładzie stworzymy listę klientów podzielonych według ich menedżerów. Szablon Word będzie wyglądać tak:

<<foreach [in managers]>>Menedżer: <<[Name]>>
Umowy:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Odpowiadające źródło danych JSON, którego użyjemy do wypełnienia szablonu, wygląda tak:

Aby wygenerować dokument Word z JSON, użyjemy klasy JsonDataSource do załadowania źródła danych, a pozostałe kroki będą zgodne z poprzednią strukturą. Poniższy fragment kodu pokazuje, jak wygenerować dokument Word z szablonu JSON w C#.

Wynik

Generowanie dokumentu Word z źródła danych CSV w C#

Aby wygenerować dokument Word ze źródła CSV, wykorzystamy następujący szablon Word:

<<foreach [in persons]>>Imię: <<[Column1]>>, Wiek: <<[Column2]>>, Data urodzenia: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Średni wiek: <<[persons.Average(p => p.Column2)]>>

Szablon będzie wypełniany danymi CSV przedstawionymi poniżej:

Teraz przyjrzyjmy się kodowi C#. Kroki pozostają te same, z jedną kluczową różnicą: użyjemy klasy CsvDataSource do załadowania danych CSV. Poniższy fragment kodu ilustruje, jak wygenerować dokument Word z źródła danych CSV.

Wynik

Wypróbuj Aspose.Words dla .NET za darmo

Możesz wypróbować Aspose.Words dla .NET za pomocą darmowej tymczasowej licencji.

Podsumowanie

W tym artykule dowiedziałeś się, jak generować dokumenty Word z szablonów za pomocą C#. Odkryłeś, jak wykorzystać różne źródła danych, takie jak obiekty, XML, JSON i CSV do dynamicznego generowania dokumentów .NET. Zgłębiaj dalej możliwości przetwarzania szablonów Word w .NET, eksplorując dokumentację i nie wahaj się skontaktować z nami za pośrednictwem naszego forum.

Zobacz także