Как использовать функцию слияния почты в Word

Плагин позволяет осуществлять профессиональные массовые персонализированные рассылки, существенно расширяя возможности стандартного слияния (mail merge) в Microsoft Outlook, Microsoft Word и Microsoft Publisher

Что такое "слияние" (mail merge)?

Офисные программы (Word, Outlook, Publisher) предоставляют пользователю возможность автоматического добавления имен получателей, их адресов и некоторых других деталей из заранее определенного источника (база данных, список рассылки, внешний файл) в создаваемые сообщения электронной почты. Такая возможность называется "слиянием" (mail merge). С помощью слияния легко создать нужное количество персонализированных писем для рассылки — в каждом письме будут уникальные имя и адрес конкретного получателя, а возможно и некоторые детали в тексте сообщения. Однако возможность слияния в Microsoft Office не лишена некоторых недостатков. Word, Outlook и Publisher имеют возможность делать массовые рассылки, но со значительными ограничениями.

Как оптимально использовать возможности слияния для осуществления высокоэффективных рассылок сообщений электронной почты?

Специально для этой цели мы создали Mail Merge Toolkit — плагин для Microsoft Word, Microsoft Publisher и Microsoft Outlook, расширяющий набор стандартных функций слияния и предоставляющий следующие возможности:

  • Персонализация темы письма (subject) при рассылке из любой программы (Word, Outlook, Publisher).
  • Персонализация вложенных файлов (attachments) при осуществлении рассылки: разные файлы для разных получателей.
  • Рассылка по электронной почте в формате PDF, DOCX, HTML и RTF прямо из Microsoft Word.
  • Использование списков Microsoft SharePoint (SharePoint list) как источника персонализированных данных для рассылок, наряду с привычными форматами: таблицами Excel, контактами Outlook, текстовыми файлами и другими.
  • Рассылка по электронной почте в форматах HTML, RTF и текстовом из Word и Outlook без срабатывания системы безопасности и с сохранением работоспособности ссылок.
  • Рассылка в формате GIF из Microsoft Publisher. При этом, в формате GIF можно задавать разные HTML-ссылки для участков изображения (технология image map).

Купить

Чем Mail Merge Toolkit отличается от стандартных возможностей слияния в Microsoft Office?

Недостатки рассылки документов из Microsoft Word и Microsoft Outlook при использовании слияния

  • При рассылке документов в виде простого текста, постоянно срабатывает система безопасности Microsoft Outlook.
  • Отсутствие возможности отправки электронных писем в формате RTF.
  • При посылке документа в формате HTML гиперссылки, содержащиеся в документе, в конечном итоге не работают.
  • Отсутствует возможность отображать поля данных в теме письма (то есть, письма не могут содержать в теме письма, например, обращение по имени или фамилии).
  • Невозможность автоматически прикреплять файлы к отправляемым письмам. Вернуться к описанию

Загрузка демонстрационной версии

Вы можете загрузить демоверсию программы Mail Merge Toolkit (31608 KB) протестировать её перед покупкой:

Регистрация программы

Если Вы хотите использовать Mail Merge Toolkit после окончания 30-дневного демонстрационного периода, то вам необходимо зарегистрировать программу. Вы можете зарегистрировать Mail Merge Toolkit через Интернет, выбрав удобный для вас способ оплаты.

Лицензии и цены:

Лицензия на 1 компьютер

Если вы заинтересованы в приобретении лицензий более чем для 100 пользователей, вы можете воспользоваться возможностями корпоративной покупки.

Загрузите 30-дневную демоверсию Mail Merge Toolkit (31608 KB): Основной сервер Вспомогательный сервер
Купите Mail Merge Toolkit прямо сейчас. Возможны все способы оплаты.

Слияние почты в документах Word с использованием C# или VB.NET — .NET Mail Merge API

Эта статья, посвященная основным функциям нашего .NET Mail Merge API, состоит из следующих разделов:

  • Что такое слияние почты?
  • Источники данных для слияния
  • Подготовка шаблона для слияния
  • .NET Mail Merge API — установка
  • Выполнение слияния почты в документе Word с помощью C#
  • Слияние почты с использованием источника данных XML
  • Пользовательское форматирование полей слияния
  • Слияние почты с регионами
  • Вложенные области слияния почты

Что такое слияние почты?

Mail Merge — это способ автоматической генерации отчетов, писем, конвертов, счетов и других типов документов. Mail Merge в MS Word позволяет создать шаблон документа, содержащий поля слияния, а затем заполнить эти поля, используя записи в источнике данных. Чтобы понять Mail Merge, предположим, что вам нужно отправить письмо десяти разным людям, и нужно обновить только поля имени и адреса. В таком случае просто создайте шаблон письма, а затем динамически сгенерируйте письма, заполнив поля слияния имени и адреса с помощью источника данных.

Источники данных для слияния

Данные для слияния могут быть получены из любого источника данных, например XML, JSON или базы данных. Что касается Aspose.Words for .NET, вы можете использовать любой источник данных, поддерживаемый ADO.NET. Данные можно загрузить в DataSet, DataTable, DataView или массив значений.

Подготовка шаблона для слияния

Шаблон слияния — это документ, содержащий поля слияния. Затем эти поля заполняются данными из источника данных при выполнении слияния. Документ-шаблон не обязательно должен быть в формате шаблона, это может быть документ в формате DOC/DOCX. Вот как вы можете подготовить шаблон для слияния.

  • Откройте свой документ или создайте новый в MS Word.
  • Поместите курсор туда, где вы хотите добавить поле слияния.
  • В меню «Вставка» выберите «Поле».
  • В списке Имена полей выберите MergeField.
  • Введите имя поля слияния в поле Имя поля и нажмите OK.
  • Сохраните документ.

Ниже приведен скриншот документа пример шаблона.

Шаблон рассылки писем

.NET Mail Merge API — установка

Aspose.Words для .NET можно загрузить или установить следующими способами:

  • Скачать DLL
  • Установить через диспетчер пакетов NuGet

Выполнение слияния почты в документе Word с помощью C

Когда у вас есть готовый шаблон, вы можете выполнить слияние для создания документов. Ниже приведены шаги для выполнения слияния в вышеупомянутом шаблоне.

  • Загрузите документ шаблона, используя класс Document.
  • Установите необходимые параметры слияния, например Document.MailMerge.TrimWhitespaces.
  • Выполните слияние с помощью метода Document.MailMerge.Execute() и передайте источник данных в качестве параметра.
  • Сохраните сгенерированный документ методом Document.Save(String).

В следующем примере кода показано, как выполнить слияние MS Word с использованием массива значений в C#.

Документ Word после слияния почты#

Выполнение слияния почты в C#

Выполнение слияния почты с использованием источника данных XML в C

Файлы XML широко используются для хранения, а также импорта/экспорта данных. Aspose.Words для .NET также поддерживает XML в качестве источника данных для слияния. Просто прочитайте XML в объект DataSet и выполните слияние. Ниже приведен пример XML-файла, который мы собираемся использовать.

Следующий пример кода извлекает данные из источника данных XML и выполняет слияние с помощью C#.

Ниже приведено почтовое слияние шаблон, которое будет заполнено XML-данными.

Шаблон слияния для XML

Ниже приведена страница 1 результирующего документа Word, который мы получаем после выполнения слияния.

Выполнение слияния почты с XML в C#

Пользовательское форматирование полей слияния

Aspose.Words для .NET дает вам больший контроль над слиянием во время выполнения. Свойство MailMerge.FieldMergingCallback позволяет настроить слияние почты при обнаружении любого поля слияния. MailMerge.FieldMergingCallback принимает класс, реализующий методы IFieldMergingCallback.FieldMerging и IFieldMergingCallback.ImageFieldMerging.

В следующем примере кода показано, как настроить операцию слияния и применить форматирование к ячейкам в этом шаблоне.

Ниже приведена реализация класса HandleMergeFieldAlternatingRows.

re>// Полные примеры и файлы данных см. на странице https://github.com/aspose-words/Aspose.Words-for-.NET. private class HandleMergeFieldAlternatingRows : IFieldMergingCallback < ///

/// Вызывается для каждого поля слияния, встречающегося в документе. /// Мы можем либо вернуть какие-то данные в движок слияния, либо что-то сделать /// Остальное с документом. В этом случае мы изменяем форматирование ячейки. ///

void IFieldMergingCallback.FieldMerging(FieldMergingArgs e) < if (mBuilder == null) mBuilder = new DocumentBuilder(e.Document); // Таким образом мы ловим начало нового ряда. if (e.FieldName.Equals("CompanyName")) < // Выберите цвет в зависимости от того, является ли номер строки четным или нечетным.

Color rowColor; if (IsOdd(mRowIdx)) rowColor = Color.FromArgb(213, 227, 235); else rowColor = Color.FromArgb(242, 242, 242); // На данный момент нет возможности установить свойства ячейки для всей строки, // Таким образом, мы должны перебрать все ячейки в строке. for (int colIdx = 0; colIdx < 4; colIdx++) < mBuilder.MoveToCell(0, mRowIdx, colIdx, 0); mBuilder.CellFormat.Shading.BackgroundPatternColor = rowColor; >mRowIdx++; > > void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs args) < // Ничего не делать. >private DocumentBuilder mBuilder; private int mRowIdx; > ///

/// Возвращает true, если значение нечетное; false, если значение четное. ///

private static bool IsOdd(int value) < // Код немного сложный, но в остальном автоматическое преобразование в VB не работает. return ((value / 2) * 2).Equals(value); >///

/// Создайте DataTable и заполните его данными. /// В реальной жизни эта DataTable должна быть заполнена из базы данных. ///

private static DataTable GetSuppliersDataTable() < DataTable dataTable = new DataTable("Suppliers"); dataTable.Columns.Add("CompanyName"); dataTable.Columns.Add("ContactName"); for (int i = 0; i < 10; i++) < DataRow datarow = dataTable.NewRow(); dataTable.Rows.Add(datarow); datarow[0] = "Company " + i.ToString(); datarow[1] = "Contact " + i.ToString(); >return dataTable; >

Слияние почты с регионами с использованием C

Может быть случай, когда вам нужно заполнить и повторить определенную область в документе Word. Для такого случая вы можете использовать Mail Merge с регионами. Чтобы создать регион, вам нужно указать начало и конец региона, после чего Mail Megre будет повторять этот регион для каждой записи в источнике данных. Например, следующий шаблон содержит две области, Orders и OrderDetails с полями слияния «TableStart:Orders», «TableEnd:Orders» и «TableStart:OrderDetails», «TableEnd:OrderDetails» соответственно.

Слияние почты с регионами

Ниже приведен пример кода, который выполняет Mail Megre в регионах для вышеупомянутого template.

Ниже приведены методы чтения данных из базы данных.

re>// Полные примеры и файлы данных см. на странице https://github.com/aspose-words/Aspose.Words-for-.NET. private static DataTable GetTestOrder(int orderId) < DataTable table = ExecuteDataTable(string.Format( "SELECT * FROM AsposeWordOrders WHERE OrderId = ", orderId)); table.TableName = "Orders"; return table; > private static DataTable GetTestOrderDetails(int orderId) < DataTable table = ExecuteDataTable(string.Format( "SELECT * FROM AsposeWordOrderDetails WHERE OrderId = ORDER BY ProductID", orderId)); table.TableName = "OrderDetails"; return table; > ///

/// Вспомогательная функция, создающая соединение, команду, /// Выполняет команду и возвращает результат в DataTable. ///

private static DataTable ExecuteDataTable(string commandText) < // Откройте соединение с базой данных. string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + RunExamples.GetDataDir_Database() + "Northwind.mdb"; OleDbConnection conn = new OleDbConnection(connString); conn.Open(); // Создайте и выполните команду. OleDbCommand cmd = new OleDbCommand(commandText, conn); OleDbDataAdapter da = new OleDbDataAdapter(cmd); DataTable table = new DataTable(); da.Fill(table); // Закройте базу данных. conn.Close(); return table; >

Вложенные области слияния почты

Чаще всего данные, которые мы имеем в источнике данных, поступают в виде отношений. Например, таблица «Заказ» будет иметь связь «один ко многим» с «Детали заказа», в которой будут храниться записи об элементах заказа. Чтобы иметь дело с такими отношениями родитель-потомок, используется вложенное слияние. Ниже приведен пример шаблона счета, который хорошо подходит для этого сценария.

Шаблон рассылки писем с регионами

Ниже приведен пример источника данных XML, который мы будем использовать для вложенного слияния.

re> 23

Nelson Street

Howick Auckland

honenumber>543 1234 03/01/2010 14.00 BBQ Chicken Pizza

rice>6.00 1 6.00 1.5 Litre Coke

rice>4.00 2 8.00 10

Parkville Avenue

Pakuranga Auckland

honenumber>548 7342 05/03/2010 6.00 Hawaiian Pizza

rice>4.00 1 4.00 Fries

rice>1.00 2 2.00

Принимая во внимание, что OrderSchema.xsd для этого XML:

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

Документ Word после слияния почты#

Ниже представлена первая страница результирующего документа Word после выполнения слияния.

Документ Word после слияния почты

Оцените статью
InternetDoc.ru
Добавить комментарий