Mail Merge - это функция, которая позволяет легко создавать документы, заполненные данными, используя шаблон.
Чтобы проиллюстрировать, как работает функция Mail Merge, давайте создадим приложение C#, которое генерирует конверты "Happy New Year" для семьи Simpson. В результате мы получим пять личных поздравлений Happy New Year в одном документе.
Для начала откройте MS Word и создайте новый документ с таким названием "envelope-template.docx". Затем
добавьте несколько
изображений и текст, чтобы поздравить семью Simpsons. Далее, наша главная цель - добавить два
Fields:
"Name" и "FamilyName".
Если вы уже знакомы с добавлением Merge
Fields, Вы можете пропустить этот шаг и использовать полностью готовые «envelope-template.docx»
Здесь Вы можете получить дополнительную информацию о том, как Вставить Merge Fields
В результате выполнения шага 1 мы должны получить:envelope-template.docx
Вы можете добавить ссылку на SautinSoft.Document сборка двумя способами:
1. Nuget (быстрый способ):
2. Старый добрый способ, добавив ссылку:
Примечание:
SautinSoft.Document.dll скомпилированный для .NET Core находится внутри(document_net.zip->SautinSoft.Document X.X\Bin\.NET Core X.X) папки.
SautinSoft.Document.dll скомпилирован для .NET Framework находится внутри (document_net.zip->SautinSoft.Document X.X\Bin\.NET Framework X.X) папки.
Введите код нашего приложения: (Мы также подготовили код для VB.Net из сети)
Полный код
using System;
using System.IO;
using SautinSoft.Document;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
MailMergeSimpleEnvelope();
}
/// <summary>
/// Generates 5 envelopes "Happy New Year" for Simpson family using the one template.
/// </summary>
/// <remarks>
/// See details at: https://sautinsoft.com/products/document/help/net/developer-guide/mail-merge-simple-report-net-csharp-vb.php
/// </remarks>
public static void MailMergeSimpleEnvelope()
{
string templatePath = @"..\..\..\envelope-template.docx";
string resultPath = "Simpson-family.docx";
DocumentCore dc = DocumentCore.Load(templatePath);
var dataSource = new[] { new { Name = "Homer", FamilyName = "Simpson" },
new { Name = "Marge ", FamilyName = "Simpson" },
new { Name = "Bart", FamilyName = "Simpson" },
new { Name = "Lisa", FamilyName = "Simpson" },
new { Name = "Maggie", FamilyName = "Simpson" }};
dc.MailMerge.Execute(dataSource);
dc.Save(resultPath);
// Open the result for demonstration purposes.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(resultPath) { UseShellExecute = true });
}
}
}
Option Infer On
Imports System
Imports System.IO
Imports SautinSoft.Document
Module Sample
Sub Main()
MailMergeSimpleEnvelope()
End Sub
''' Get your free 100-day key here:
''' https://sautinsoft.com/start-for-free/
''' <summary>
''' Generates 5 envelopes "Happy New Year" for Simpson family using the one template.
''' </summary>
''' <remarks>
''' See details at: https://sautinsoft.com/products/document/help/net/developer-guide/mail-merge-simple-report-net-csharp-vb.php
''' </remarks>
Sub MailMergeSimpleEnvelope()
Dim templatePath As String = "..\..\..\envelope-template.docx"
Dim resultPath As String = "Simpson-family.docx"
Dim dc As DocumentCore = DocumentCore.Load(templatePath)
Dim dataSource = {
New With {
Key .Name = "Homer",
Key .FamilyName = "Simpson"
},
New With {
Key .Name = "Marge ",
Key .FamilyName = "Simpson"
},
New With {
Key .Name = "Bart",
Key .FamilyName = "Simpson"
},
New With {
Key .Name = "Lisa",
Key .FamilyName = "Simpson"
},
New With {
Key .Name = "Maggie",
Key .FamilyName = "Simpson"
}
}
dc.MailMerge.Execute(dataSource)
dc.Save(resultPath)
' Open the result for demonstration purposes.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(resultPath) With {.UseShellExecute = True})
End Sub
End Module
После выполнения метода слияния почты мы получим«simpson-family.docx» в результате.
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.com или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: