Вступ
Автоматизація створення персоналізованих документів — таких як звіти, листи та рахунки — може заощадити вам час і зусилля. З 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 для генерації документів. Ось кроки для виконання 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 повторить цей регіон для кожного запису в джерелі даних. Приклад шаблону нижче містить два регіони — Orders та OrderDetails — із використанням полів злиття «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» та «TableEnd:OrderDetails».

Ось зразок коду, що виконує mail merge на основі регіонів для вищезгаданого шаблону.
Наступні методи ілюструють, як читати дані з бази даних.
Вкладені регіони Mail Merge
Часто дані з джерела структуровані в реляційних форматах. Наприклад, “Orders” може мати відношення один-до-багатьох з “OrderDetails”, які зберігають записи про предмети в замовленні. У таких сценаріях використовуйте вкладений 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>
Наступний зразок коду виконує вкладений mail merge за допомогою C#.
Документ Word після Mail Merge
Нижче наведено першу сторінку отриманого документа Word, отриманого після виконання вкладеного mail merge.

Висновок
Aspose.Words для .NET — це комплексний API mail merge, який надає як стандартні, так і розширені функції, придатні для .NET додатків. Лише кілька рядків коду дозволяють вам розробляти прості або складні звіти з різноманітних джерел даних без зусиль. Для отримання порад щодо найкращих практик автоматизованої генерації звітів у .NET зверніться до документації. Щоб почати з Aspose.Words для .NET, досліджуйте доступні посібники для розробників та зразки коду на GitHub. Aspose Plugin також пропонує розширені функції для генерації звітів.
Спробуйте Aspose.Words для .NET безкоштовно
Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати Aspose.Words для .NET без обмежень. Отримайте вашу тимчасову ліцензію зараз.