Введение
Сэкономьте время и усилия, автоматизировав создание персонализированных документов, таких как отчеты, письма и счета, с помощью C# Mail Merge, поддерживаемого Aspose.Words для .NET. Этот гид объясняет, как использовать Плагин Mail Merge Aspose.Words для эффективной и масштабируемой генерации документов в ваших .NET приложениях — без необходимости использовать MS Word или Office Interop. Вы научитесь интегрировать C# mail merge для автоматизации отчетов, что позволит вам оптимизировать ваш рабочий процесс отчетности.
Содержание:
- Что такое Mail Merge?
- Источник данных для Mail Merge
- Подготовка шаблонов Mail Merge
- Начало работы с Aspose.Words для .NET
- Выполнение Mail Merge с примерами данных
- Mail Merge с данными XML
- Пользовательское форматирование полей слияния
- Mail Merge с регионами
- Вложенный Mail Merge
- Заключение
Что такое Mail Merge?
Mail Merge — это методология для динамической генерации документов путем заполнения шаблонов данными из различных источников. С помощью Aspose.Words вы можете без проблем автоматизировать такие задачи, как:
- Генерация писем и счетов с персональными данными.
- Создание массовых отчетов, используя данные из структурированных форматов, таких как XML, JSON или базы данных, позволяя динамическую генерацию отчетов с C# и Aspose.Words.
Источник данных для Mail Merge
Aspose.Words поддерживает различные источники данных:
- Объекты: Заполнение шаблонов с использованием экземпляров классов.
- XML: Загрузка структурированных данных для динамических полей.
- JSON: Легкая интеграция с современными API.
- CSV: Использование табличных данных для массовой генерации документов.
- DataTable/DataSet: Использование ADO.NET для интеграции с базами данных.
Подготовка шаблона для Mail Merge
Шаблон mail merge — это документ, содержащий поля слияния, которые будут заполнены данными из вашего указанного источника данных во время выполнения. Шаблон может быть в формате DOC или DOCX; не требуется наличие определенного стиля шаблона. Следуйте этим шагам, чтобы создать шаблон mail merge:
- Откройте ваш документ или создайте новый в MS Word.
- Поместите курсор туда, где вы хотите вставить поле слияния.
- В меню Вставка выберите опцию Поле.
- В списке Имена полей выберите MergeField.
- Укажите имя для поля слияния в поле Имя поля и нажмите ОК.
- Сохраните документ.
Следующий скриншот иллюстрирует образец шаблона документа.
.NET Mail Merge API - Установка
Вы можете установить Aspose.Words для .NET различными способами:
Выполнение Mail Merge в документе Word с использованием C#
Как только ваш шаблон готов, выполните слияние для генерации документов. Вот шаги для выполнения mail merge на вашем подготавливаемом шаблоне:
- Загрузите шаблон документа с помощью класса Document.
- Установите необходимые параметры mail merge, такие как Document.MailMerge.TrimWhitespaces.
- Выполните mail merge, используя метод Document.MailMerge.Execute(), передавая источник данных в качестве параметра.
- Сохраните сгенерированный документ с помощью метода Document.Save(String).
Вот пример кода, демонстрирующий, как автоматизировать генерацию отчетов в C# с помощью массива значений:
Документ Word после Mail Merge
Выполнение Mail Merge с использованием источника данных XML в C#
XML файлы часто используются для хранения и передачи данных. Aspose.Words для .NET также поддерживает XML в качестве источника данных для операций mail merge. Просто загрузите XML в объект DataSet и выполните mail merge. Вот пример XML файла для нашего случая.
<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>
Следующий пример кода извлекает данные из источника данных XML и выполняет mail merge с использованием C#.
Ниже представлен шаблон mail merge, который будет заполнен данными из XML файла.
Это изображение представляет собой первую страницу результирующего документа Word, полученного после выполнения mail merge.
Пользовательское форматирование полей слияния
Aspose.Words для .NET предоставляет улучшенный контроль над процессом mail merge. Свойство MailMerge.FieldMergingCallback позволяет настроить поведение mail merge, когда каждое поле слияния встречается. Реализация методов IFieldMergingCallback.FieldMerging и IFieldMergingCallback.ImageFieldMerging позволяет настраивать операции mail merge.
Ниже приведен пример кода, демонстрирующий, как применить пользовательское форматирование во время mail merge с помощью предоставленного примерного шаблона:
Следующий код реализует класс HandleMergeFieldAlternatingRows.
Mail Merge с регионами с использованием C#
В некоторых случаях вам может понадобиться заполнить и повторить определенный регион в документе Word. Для таких случаев используйте mail merge с регионами. Чтобы создать регион, укажите как начало, так и конец региона; затем mail merge будет повторять этот регион для каждой записи в источнике данных. Пример шаблона ниже содержит два региона — Заказы и Подробности заказа — с использованием полей слияния «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» и «TableEnd:OrderDetails».
Вот пример кода, выполняющего mail merge на основе регионов для ранее упомянутого шаблона.
Следующие методы показывают, как извлекать данные из базы данных.
Вложенные регионы Mail Merge
Часто данные из источника структурированы в реляционных форматах. Например, “Заказы” могут иметь отношение один-ко-многим с “Подробностями заказа”, которые хранят записи о товарах в заказе. В таких сценариях используйте вложенное слияние. Ниже приведен пример шаблона инвойса, который подходит для этого сценария.
Ниже находится XML источник данных для нашего примера вложенного 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>
Соответствующий файл OrderSchema.xsd для этого XML:
<?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>
Следующий пример кода выполняет вложенное слияние с использованием C#.
Документ Word после Mail Merge
Ниже представлена первая страница результирующего документа Word, полученного после выполнения вложенного mail merge.
Заключение
Aspose.Words для .NET — это всеобъемлющий API для mail merge, который предоставляет как стандартные, так и расширенные функции, пригодные для .NET приложений. С помощью всего лишь нескольких строк кода вы можете разрабатывать простые или сложные отчеты из различных источников данных без проблем. Для получения рекомендаций по наилучшим практикам автоматической генерации отчетов в .NET обращайтесь к документации. Чтобы начать с Aspose.Words для .NET, изучите доступные руководства разработчиков и образцы кода на GitHub. Также Плагин Aspose предлагает расширенные функции для генерации отчетов.
Попробуйте Aspose.Words для .NET бесплатно
Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.Words для .NET без ограничений. Получите свою временную лицензию сейчас.