Java: Preform Mail Merge with a Region

When you run mail merge with a region, all merge fields within the region are repeated for each record in the data source. This is useful when you want to dynamically add rows to a Word table. In this article, you will learn how to perform mail merge with a region using Spire.Doc for Java.

Install Spire.Doc for Java

First of all, you're required to add the Spire.Doc.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>12.4.6</version>
    </dependency>
</dependencies>
    

Create a Template

To create a mail merge region, you need to specify the start point and the end point of the region. For example, the following Word template contains the region "Country" which is marked by «TableStart:Country» and «TableEnd:Country». Mail Merge will repeat that region for each record in the data source.

Java: Preform Mail Merge with a Region

The following is the sample XML file that will be used as the data source.

  • Package Manager
<?xml version="1.0" encoding="UTF-8"?>
<Data>
	<Country>
		<Capital>Buenos Aires</Capital>
		<Name>Argentina</Name>
		<Continent>South America</Continent>
		<Area>2777815</Area>
		<Population>32300003</Population>
	</Country>
	<Country>
		<Capital>La Paz</Capital>
		<Name>Bolivia</Name>
		<Continent>South America</Continent>
		<Area>1098575</Area>
		<Population>7300000</Population>
	</Country>
	<Country>
		<Capital>Brasilia</Capital>
		<Name>Brazil</Name>
		<Continent>South America</Continent>
		<Area>8511196</Area>
		<Population>150400000</Population>
	</Country>	
	<Country>
		<Capital>Buenos Aires</Capital>
		<Name>Argentina</Name>
		<Continent>South America</Continent>
		<Area>2777815</Area>
		<Population>32300003</Population>
	</Country>
	<Country>
		<Capital>La Paz</Capital>
		<Name>Bolivia</Name>
		<Continent>South America</Continent>
		<Area>1098575</Area>
		<Population>7300000</Population>
	</Country>
</Data>

Preform Mail Merge with a Region

The following are the steps to preform mail merge with a region.

  • Create a Document object.
  • Load the Word template file using Document.loadFromFile() method.
  • Execute mail merge with a region using Document.getMailMerge().executeWidthRegion() method.
  • Save the changes to another file using Document.saveToFile() method.
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class MailMergeWithRegions {

    public static void main(String[] args) throws Exception {

        //Create a Document object
        Document doc = new Document();

        //Load the Word template file
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\MailMergeTemplate.docx");

        //Execute mail merge with a region
        doc.getMailMerge().executeWidthRegion("C:\\Users\\Administrator\\Desktop\\Data.xml");

        //Save the changes to another file
        doc.saveToFile("output/MailMergeWithRegions.docx", FileFormat.Docx_2013);
    }
}

Java: Preform Mail Merge with a Region

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.