Mail Merge шаблон от Mustache синтаксис
Aspose.Words ви позволява да създавате шаблони с mustache синтаксис в допълнение към познатите шаблони. Mustache е алтернативен вариант на синтаксиса на шаблона, който се състои от имена на етикети, оградени от и подкрепени от модел обект, който съдържа данните за шаблона.
Синтаксисът Mustache е единствената опция за използване с шаблони, които не съдържат полета, като например HTML и TXT шаблони. С Word шаблони имате две опции за използване на полета или Mustache синтаксис.
Mustache синтаксисът поддържа foreach таг, който е алтернатива за използване на Mail Merge С региони. Така че ползата е, че можете да използвате mustache синтаксис, ако по някаква причина не сте в състояние или просто не искате да използвате полета за обединяване и обединяване региони.
Можете също да комбинирате Mail Merge полета с някои допълнителни полета, като използвате маркера foreach, както е показано на снимката по-долу.

Създайте шаблон Mustache
Първото важно нещо, което трябва да се изясни, е, че Mustache не е моделиращ двигател. Mustache е друг синтактичен вариант, който е достъпен за всеки шаблон в load format, поддържан от Aspose.Words. Следователно, можете да създадете такъв шаблон както програмно, така и чрез интерфейс, просто трябва да включите определен синтаксис и да спазвате спецификацията Mustache.
Да предположим, че трябва да изпратите един и същ имейл до 50 получатели, за да персонализирате поздрава със съответните им първи имена. Можете да заместите първото име на получателя с някакъв контейнер, както следва::
Dear {{FirstName}}
I hereby…
Въпросът тук: как можете да създадете 50 имейла от 1 единствен Mustache шаблон? За да отговорите на това, трябва да изпълните Mail Merge с региони, за да попълните къдравите скоби за контейнери в шаблона с действителни данни и да генерирате изходен документ.

Работа с Mustache синтаксис
Mustache е представен като ред без логика, тъй като липсват конкретни отчети за контролните потоци, като for цикли и if и else условия. Но можете да използвате раздел тагове обработка списъци и ламбди да се постигне условна оценка и примка. За да включите синтаксиса Mustache в операцията Mail Merge, ще трябва да използвате свойството UseNonMergeFields и да зададете стойността му на True.
Следващият пример за код показва как да замените маркерите Mustache с конкретни данни:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Mail merge destinations - Vendor.docx"); | |
// Loop through each row and fill it with data. | |
DataTable dataTable = new DataTable("list"); | |
dataTable.Columns.Add("Number"); | |
for (int i = 0; i < 10; i++) | |
{ | |
DataRow dataRow = dataTable.NewRow(); | |
dataTable.Rows.Add(dataRow); | |
dataRow[0] = "Number " + i; | |
} | |
// Activate performing a mail merge operation into additional field types. | |
doc.MailMerge.UseNonMergeFields = true; | |
doc.MailMerge.ExecuteWithRegions(dataTable); | |
doc.Save(ArtifactsDir + "WorkingWithXmlData.MustacheSyntaxUsingDataTable.docx"); |
Можете да забележите разликата между документа, преди да изпълните Mail Merge с региони заедно с прилагането на UseNonMergeFields свойство:

{{#foreach list}}
започва раздел “напред”, докато {{/foreach list}}
го завършва.
И след прилагане на Mail Merge С региони:

Използвайте IF
полета, за да направите Mail Merge интелигентен
Aspose.Words ви позволява да използвате Mail Merge полета и Mustache тагове с IF
изявление. Полетата IF
могат да се използват във всеки документ Mail Merge, За да се премахнат нежеланите интервали и запетаи, ако дадено поле е празно.
Формулата IF
е показана по-долу:
{ IF [Condition] [Display Result 1] [Display Result 2] }
Тук условието може да бъде поле за обединяване или етикет Mustache.
Например можете да използвате IF
полета, ако трябва да вмъкнете “неговата”, “нея”, “той” или “тя” в зависимост от пола, както следва::
{ IF { MERGEFIELD Gender } = “MALE” “верен текст” “фалшив текст”}
{ IF “{{ GENDER }}” = “MALE” “верен текст” “фалшив текст”}
Следващият пример за код показва как да извършите операция Mail Merge с Mustache тагове и IF
полета:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Mail merge destinations - Mustache syntax.docx"); | |
doc.MailMerge.UseNonMergeFields = true; | |
doc.MailMerge.Execute(new[] { "GENDER" }, new object[] { "MALE" }); | |
doc.Save(ArtifactsDir + "BaseOperations.IfElseMustache.docx"); |
Можете да забележите разликата между документа, преди да приложите UseNonMergeFields свойство:

И след прилагане на UseNonMergeFields собственост:
