---
title: "Mail Merge шаблон от Mustache синтаксис"
---


Aspose.Words ви позволява да създавате шаблони с mustache синтаксис в допълнение към познатите шаблони. Mustache е алтернативен вариант на синтаксиса на шаблона, който се състои от имена на етикети, оградени от и подкрепени от модел обект, който съдържа данните за шаблона.

Синтаксисът Mustache е единствената опция за използване с шаблони, които не съдържат полета, като например HTML и TXT шаблони. С Word шаблони имате две опции за използване на полета или Mustache синтаксис.

Mustache синтаксисът поддържа *foreach* таг, който е алтернатива за използване на Mail Merge С региони. Така че ползата е, че можете да използвате mustache синтаксис, ако по някаква причина не сте в състояние или просто не искате да използвате полета за обединяване и обединяване региони.

Можете също да комбинирате Mail Merge полета с някои допълнителни полета, като използвате маркера *foreach*, както е показано на снимката по-долу.

<img src="mustache-syntax.png" alt="mustache_syntax_aspose_words_java" style="width:800px"/>

## Създайте шаблон Mustache

Първото важно нещо, което трябва да се изясни, е, че Mustache не е моделиращ двигател. Mustache е друг синтактичен вариант, който е достъпен за всеки шаблон в [load format](https://reference.aspose.com/words/java/com.aspose.words/loadformat/), поддържан от Aspose.Words. Следователно, можете да създадете такъв шаблон както програмно, така и чрез интерфейс, просто трябва да включите определен синтаксис и да спазвате спецификацията Mustache.

Да предположим, че трябва да изпратите един и същ имейл до 50 получатели, за да персонализирате поздрава със съответните им първи имена. Можете да заместите първото име на получателя с някакъв контейнер, както следва::

> Dear {{FirstName}}
>
> I hereby...

Въпросът тук: как можете да създадете 50 имейла от 1 единствен Mustache шаблон? За да отговорите на това, трябва да изпълните Mail Merge с региони, за да попълните къдравите скоби за контейнери в шаблона с действителни данни и да генерирате изходен документ.

<img src="mustache-template.png" alt="mustache_template_aspose_words_java" style="width:650px"/>

{{% alert color="primary" %}}

Както забелязвате от примера по-горе, в Mustache трябва да използвате къдрави скоби за контейнери, които изглеждат като mustache, когато завъртите къдравите скоби на 90 градуса по посока на часовниковата стрелка.

{{% /alert %}}

## Работа с Mustache синтаксис

Mustache е представен като ред без логика, тъй като липсват конкретни отчети за контролните потоци, като *for* цикли и *if* и *else* условия. Но можете да използвате раздел тагове обработка списъци и ламбди да се постигне условна оценка и примка. За да включите синтаксиса Mustache в операцията Mail Merge, ще трябва да използвате свойството [UseNonMergeFields](https://reference.aspose.com/words/java/com.aspose.words/mailmerge/#getUseNonMergeFields) и да зададете стойността му на *True*.

Следващият пример за код показва как да замените маркерите Mustache с конкретни данни:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-mail_merge-MailMergeUsingMustacheTemplateSyntax-MustacheSyntaxUsingDataTable.java" >}}

Можете да забележите разликата между документа, преди да изпълните Mail Merge с региони заедно с прилагането на **UseNonMergeFields** свойство:

<img src="mustache-syntax-1.png" alt="mustache_syntax_aspose_words_java" style="width:400px"/>

{{% alert color="primary" %}}

Раздел започва с паунд и завършва с наклонена черта. Това означава, че `{{#foreach list}}` започва раздел "напред", докато `{{/foreach list}}` го завършва.

{{% /alert %}}

И след прилагане на Mail Merge С региони:

<img src="mustache-syntax-2.png" alt="mustache_syntax_result_aspose_words_java" style="width:300px"/>

## Използвайте `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` полета:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-mail_merge-MailMergeUsingMustacheTemplateSyntax-UseOfIfElseMustacheSyntax.java" >}}

Можете да забележите разликата между документа, преди да приложите **UseNonMergeFields** свойство:

<img src="mustache-if-field-1.png" alt="mustache_if_field_aspose_words_java" style="width:800px"/>

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

<img src="mustache-if-field-2.png" alt="mustache_if_field_2_aspose_words_java" style="width:800px"/>
