Populate Template with Data Online

In this article, you will learn how to populate a Mail Merge or mustache template with data online. You can download the SDK of your favorite language and start programming in the smartest way. You can send both template file and mail merge data file in the request body and the API returns populated document in API response. This API represents a controller for executing a mail merge.

The following is a description of the most important parameters:

Parameter Name Description

Merge with regions or not. False by default.

Flag ‘withRegions’ can be omitted, in this case, a simple mail merge will be executed. If the flag is present and value is ‘true’ - mail merge with regions will be executed.

cleanup If the cleanup parameter is omitted, cleanup options will be None.
useWholeParagraphAsRegion Specifies a value indicating whether a paragraph with TableStart or TableEnd field should be fully included in the mail merge region or particular range between TableStart and TableEnd fields. The default value is true.

The cleanup options parameter can contain a list of values from below, separated by “,":

Value Description
None Without any cleanup.
EmptyParagraphs Specifies whether paragraphs that contained mail merge fields with no data should be removed from the document.
UnusedRegions Specifies whether unused mail merge regions should be removed from the document.
UnusedFields Specifies whether unused merge fields should be removed from the document.
ContainingFields Specifies whether fields that contain merge fields (for example, IFs) should be removed from the document if the nested merge fields are removed.
RemoveTitleRow Removes title row of the table if this table doesn’t contain any rows except title row. It does not remove title rows in nested tables.
RemoveTitleRowInInnerTables Enable “RemoveTitleRow " for nested tables.
RemoveStaticFields Specifies whether static fields should be removed from the document. Static fields are fields, which results remain the same upon any document change. Fields, which do not store their results in a document and are calculated on the fly (like Aspose.Words.Fields.FieldType.FieldListNum, Aspose.Words.Fields.FieldType.FieldSymbol, etc.) are not considered to be static.

Data Formats

Both JSON and XML data formats are supported. Choosing the appropriate data format makes a difference in flexibility, scalability and performance speed of your application. XML and JSON have much in common with their own strengths and drawbacks. You need to determine which one is the most preferred for your purposes.

Usage examples with cURL and Postman

You can carry out REST API interactions using cURL and Postman. Please read these instructions to receive a personal JWT_TOKEN for authorization.

Case 1: MailMerge Template

Download sample SampleMailMergeTemplate.docx, SampleMailMergeTemplateData.xml and output TestPostDocumentExecuteMailMerge.docx files for testing purposes.

Case 2: Mustache Template

Download sample TestExecuteTemplate.doc, TestExecuteTemplateData.xml and output TestPostExecuteTemplate.docx files for testing purposes.

Aspose.Words Cloud SDK Family

Using SDK is the best way to speed up the development. Our Cloud SDKs take care of low-level details and let you focus on your primary tasks.

Please check out the GitHub repository for a complete list of Aspose.Words SDKs.

Usage examples in Python, Java, C#, etc.

The following code samples show how to interact with the REST API using almost any mainstream programming language.

You can find a lot of other examples in Python, Java, C#, JavaScript, PHP, C++, Golang, Ruby, Swift, Dart on GitHub. All codes are thoroughly tested and ready for production use.