Создание Word из шаблона на C#

Автоматизация генерации документов имеет решающее значение для бизнеса при создании динамических отчетов, счетов и писем. С помощью Aspose.Words Mail Merge for .NET вы можете эффективно заполнять шаблоны Word данными из различных источников, включая объекты, CSV, JSON и XML. Этот гид демонстрирует, как использовать слияние почты в C# для упрощения и автоматизации рабочих процессов документов, с особым акцентом на динамическое создание документов Word .NET.


Темы, рассмотренные в материале:


Обзор слияния почты для .NET

Aspose.Words Mail Merge for .NET позволяет разработчикам генерировать персонализированные документы из заранее определенных шаблонов, содержащих поля слияния. Плагин предназначен для бесшовной интеграции в .NET-среды, предлагая возможности для:

  • Динамического заполнения шаблонов данными, поддерживая генерацию документов Word для .NET.
  • Эффективного массового выполнения генерации документов, используя решения слияния почты .NET для больших наборов данных.
  • Поддержания последовательного форматирования на выходе, эффективно улучшая лучшие практики шаблонов документов Word C#.

Ключевые функции:

  1. Поддержка нескольких источников: Используйте данные из объектов, баз данных, XML, JSON и CSV для создания настраиваемых документов Word с C#.
  2. Высокая производительность: Эффективная обработка больших наборов данных и массовых операций для динамической генерации документов Word с .NET Core.
  3. Настраиваемые шаблоны: Создавайте шаблоны с заполняемыми местами для вставки данных, используя возможности автоматизации слияния почты Word .NET.

Установка

Установите Aspose.Words с помощью NuGet:

PM> Install-Package Aspose.Words

Генерация документа Word из шаблона с использованием объектов C#

Сначала давайте посмотрим, как заполнить шаблон Word с использованием объектов C#. Для иллюстрации этого мы создадим документ Word (DOC/DOCX) с следующими заполняемыми полями в качестве содержания документа:

<<[sender.Name]>> говорит: "<<[sender.Message]>>."

Здесь sender — это экземпляр класса, который мы будем использовать для заполнения шаблона с помощью подхода генерации документа Word из базы данных C#.

Теперь мы можем использовать движок отчетов Aspose.Words для генерации документа Word из шаблона и экземпляра класса Sender, следуя этим шагам:

  • Создайте экземпляр класса Document и инициализируйте его путем к шаблону Word.
  • Создайте и инициализируйте объект класса Sender.
  • Создайте экземпляр класса ReportingEngine.
  • Заполните шаблон, используя ReportingEngine.BuildReport(), который принимает экземпляр Document, источник данных и имя источника данных в качестве параметров.
  • Сохраните сгенерированный документ Word с помощью метода Document.Save().

Следующий пример кода показывает, как сгенерировать документ Word из шаблона на C#.

Выходные данные

Генерация документа Word из XML-источника данных на C#

Чтобы сгенерировать документ Word из XML-источника данных, мы будем использовать более сложный шаблон Word с следующими заполняемыми полями:

<<foreach [in persons]>>Имя: <<[Name]>>, Возраст: <<[Age]>>, Дата рождения: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Средний возраст: <<[persons.Average(p => p.Age)]>>

XML-источник данных, использованный в этом примере, показан ниже.

Чтобы создать документ Word из XML-источника данных, следуйте этим шагам:

  • Создайте экземпляр класса Document и инициализируйте его путем к шаблону Word.
  • Создайте экземпляр класса XmlDataSource и инициализируйте его путем к XML-файлу.
  • Создайте экземпляр класса ReportingEngine.
  • Используйте метод ReportingEngine.BuildReport(), как и ранее, чтобы заполнить шаблон Word.
  • Сохраните сгенерированный документ Word с помощью метода Document.Save().

Вот образец кода, демонстрирующий, как сгенерировать документ Word из XML-источника данных на C#.

Выходные данные

Генерация документа Word из JSON-источника данных на C#

Теперь давайте рассмотрим, как сгенерировать документ Word, используя JSON-источник данных. В этом примере мы создадим список клиентов, сегментированный по их менеджерам. Шаблон Word будет выглядеть следующим образом:

<<foreach [in managers]>>Менеджер: <<[Name]>>
Контракты:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Соответствующий JSON-источник данных, который мы будем использовать для заполнения шаблона, показан ниже:

Чтобы сгенерировать документ Word из JSON, мы будем использовать класс JsonDataSource, чтобы загрузить источник данных, а оставшиеся шаги сохранят прежнюю структуру. Пример кода ниже показывает, как сгенерировать документ Word из шаблона JSON на C#.

Выходные данные

Генерация документа Word из CSV-источника данных на C#

Чтобы сгенерировать документ Word из CSV-источника, мы будем использовать следующий шаблон Word:

<<foreach [in persons]>>Имя: <<[Column1]>>, Возраст: <<[Column2]>>, Дата рождения: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Средний возраст: <<[persons.Average(p => p.Column2)]>>

Шаблон будет заполнен следующими данными CSV:

Теперь давайте рассмотрим код на C#. Шаги остаются прежними, за исключением одного ключевого различия: мы будем использовать класс CsvDataSource, чтобы загрузить данные CSV. Следующий пример кода иллюстрирует, как сгенерировать документ Word из CSV-источника данных.

Выходные данные

Попробуйте Aspose.Words для .NET бесплатно

Вы можете попробовать Aspose.Words для .NET с помощью бесплатной временной лицензии.

Заключение

В этой статье вы узнали, как генерировать документы Word из шаблонов с помощью C#. Вы узнали, как использовать различные источники данных, такие как объекты, XML, JSON и CSV для динамической генерации документов .NET. Углубитесь в возможности обработки шаблонов Word .NET, изучив документацию, и не стесняйтесь обращаться через наш форум.

См. также