Class MailMergerContext

Class MailMergerContext

Namespace: Aspose.Words.LowCode
Assembly: Aspose.Words.dll (25.12.0)

Mail merge context.

public class MailMergerContext : ProcessorContext

Inheritance

object ProcessorContext MailMergerContext

Inherited Members

ProcessorContext.WarningCallback , ProcessorContext.FontSettings , ProcessorContext.LayoutOptions , object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Examples

Shows how to do mail merge operation for a single record using context.

// There is a several ways to do mail merge operation:
                                                                                  string doc = MyDir + "Mail merge.doc";

                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                  MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                  mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                  mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                  MailMerger.Create(mailMergerContext)
                                                                                      .From(doc)
                                                                                      .To(ArtifactsDir + "LowCode.MailMergeContext.docx")
                                                                                      .Execute();

Shows how to do mail merge operation from a DataRow using context.

// There is a several ways to do mail merge operation from a DataRow:
                                                                             string doc = MyDir + "Mail merge.doc";

                                                                             DataTable dataTable = new DataTable();
                                                                             dataTable.Columns.Add("FirstName");
                                                                             dataTable.Columns.Add("Location");
                                                                             dataTable.Columns.Add("SpecialCharsInName()");

                                                                             DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                             MailMergerContext mailMergerContext = new MailMergerContext();
                                                                             mailMergerContext.SetSimpleDataSource(dataRow);
                                                                             mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                             MailMerger.Create(mailMergerContext)
                                                                                 .From(doc)
                                                                                 .To(ArtifactsDir + "LowCode.MailMergeContextDataRow.docx")
                                                                                 .Execute();

Shows how to do mail merge operation from a DataTable using context.

// There is a several ways to do mail merge operation from a DataTable:
                                                                               string doc = MyDir + "Mail merge.doc";

                                                                               DataTable dataTable = new DataTable();
                                                                               dataTable.Columns.Add("FirstName");
                                                                               dataTable.Columns.Add("Location");
                                                                               dataTable.Columns.Add("SpecialCharsInName()");

                                                                               DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                               MailMergerContext mailMergerContext = new MailMergerContext();
                                                                               mailMergerContext.SetSimpleDataSource(dataTable);
                                                                               mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                               MailMerger.Create(mailMergerContext)
                                                                                   .From(doc)
                                                                                   .To(ArtifactsDir + "LowCode.MailMergeContextDataTable.docx")
                                                                                   .Execute();

Shows how to do mail merge with regions operation from a DataTable using context.

// There is a several ways to do mail merge with regions operation from a DataTable:
                                                                                            string doc = MyDir + "Mail merge with regions.docx";

                                                                                            DataTable dataTable = new DataTable("MyTable");
                                                                                            dataTable.Columns.Add("FirstName");
                                                                                            dataTable.Columns.Add("LastName");
                                                                                            dataTable.Rows.Add(new object[] { "John", "Doe" });
                                                                                            dataTable.Rows.Add(new object[] { "", "" });
                                                                                            dataTable.Rows.Add(new object[] { "Jane", "Doe" });

                                                                                            MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                            mailMergerContext.SetRegionsDataSource(dataTable);
                                                                                            mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                            MailMerger.Create(mailMergerContext)
                                                                                                .From(doc)
                                                                                                .To(ArtifactsDir + "LowCode.MailMergeContextWithRegionsDataTable.docx")
                                                                                                .Execute();

Shows how to do mail merge operation for a single record from the stream using context.

// There is a several ways to do mail merge operation using documents from the stream:
                                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                                  using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                  {
                                                                                                      MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                      mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                                      mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                      using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStream.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                          MailMerger.Create(mailMergerContext)
                                                                                                              .From(streamIn)
                                                                                                              .To(streamOut, SaveFormat.Docx)
                                                                                                              .Execute();
                                                                                                  }

Shows how to do mail merge operation from a DataRow using documents from the stream using context.

// There is a several ways to do mail merge operation from a DataRow using documents from the stream:
                                                                                                             DataTable dataTable = new DataTable();
                                                                                                             dataTable.Columns.Add("FirstName");
                                                                                                             dataTable.Columns.Add("Location");
                                                                                                             dataTable.Columns.Add("SpecialCharsInName()");

                                                                                                             DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                                                             using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                             {
                                                                                                                 MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                 mailMergerContext.SetSimpleDataSource(dataRow);
                                                                                                                 mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                 using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamDataRow.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                     MailMerger.Create(mailMergerContext)
                                                                                                                         .From(streamIn)
                                                                                                                         .To(streamOut, SaveFormat.Docx)
                                                                                                                         .Execute();
                                                                                                             }

Shows how to do mail merge operation from a DataTable using documents from the stream using context.

// There is a several ways to do mail merge operation from a DataTable using documents from the stream:
                                                                                                               DataTable dataTable = new DataTable();
                                                                                                               dataTable.Columns.Add("FirstName");
                                                                                                               dataTable.Columns.Add("Location");
                                                                                                               dataTable.Columns.Add("SpecialCharsInName()");

                                                                                                               DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                                                               using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                               {
                                                                                                                   MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                   mailMergerContext.SetSimpleDataSource(dataTable);
                                                                                                                   mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                   using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamDataTable.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                       MailMerger.Create(mailMergerContext)
                                                                                                                           .From(streamIn)
                                                                                                                           .To(streamOut, SaveFormat.Docx)
                                                                                                                           .Execute();
                                                                                                               }

Shows how to do mail merge with regions operation from a DataTable using documents from the stream using context.

// There is a several ways to do mail merge with regions operation from a DataTable using documents from the stream:
                                                                                                                            DataTable dataTable = new DataTable("MyTable");
                                                                                                                            dataTable.Columns.Add("FirstName");
                                                                                                                            dataTable.Columns.Add("LastName");
                                                                                                                            dataTable.Rows.Add(new object[] { "John", "Doe" });
                                                                                                                            dataTable.Rows.Add(new object[] { "", "" });
                                                                                                                            dataTable.Rows.Add(new object[] { "Jane", "Doe" });

                                                                                                                            using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                                            {
                                                                                                                                MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                                mailMergerContext.SetRegionsDataSource(dataTable);
                                                                                                                                mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                                using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamWithRegionsDataTable.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                                    MailMerger.Create(mailMergerContext)
                                                                                                                                        .From(streamIn)
                                                                                                                                        .To(streamOut, SaveFormat.Docx)
                                                                                                                                        .Execute();
                                                                                                                            }

Shows how to do mail merge with regions operation from a DataSet using context.

// There is a several ways to do mail merge with regions operation from a DataSet:
                                                                                          string doc = MyDir + "Mail merge with regions data set.docx";

                                                                                          DataTable tableCustomers = new DataTable("Customers");
                                                                                          tableCustomers.Columns.Add("CustomerID");
                                                                                          tableCustomers.Columns.Add("CustomerName");
                                                                                          tableCustomers.Rows.Add(new object[] { 1, "John Doe" });
                                                                                          tableCustomers.Rows.Add(new object[] { 2, "Jane Doe" });

                                                                                          DataTable tableOrders = new DataTable("Orders");
                                                                                          tableOrders.Columns.Add("CustomerID");
                                                                                          tableOrders.Columns.Add("ItemName");
                                                                                          tableOrders.Columns.Add("Quantity");
                                                                                          tableOrders.Rows.Add(new object[] { 1, "Hawaiian", 2 });
                                                                                          tableOrders.Rows.Add(new object[] { 2, "Pepperoni", 1 });
                                                                                          tableOrders.Rows.Add(new object[] { 2, "Chicago", 1 });

                                                                                          DataSet dataSet = new DataSet();
                                                                                          dataSet.Tables.Add(tableCustomers);
                                                                                          dataSet.Tables.Add(tableOrders);
                                                                                          dataSet.Relations.Add(tableCustomers.Columns["CustomerID"], tableOrders.Columns["CustomerID"]);

                                                                                          MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                          mailMergerContext.SetRegionsDataSource(dataSet);
                                                                                          mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                          MailMerger.Create(mailMergerContext)
                                                                                              .From(doc)
                                                                                              .To(ArtifactsDir + "LowCode.MailMergeContextWithRegionsDataTable.docx")
                                                                                              .Execute();

Shows how to do mail merge with regions operation from a DataSet using documents from the stream using context.

// There is a several ways to do mail merge with regions operation from a DataSet using documents from the stream:
                                                                                                                          DataTable tableCustomers = new DataTable("Customers");
                                                                                                                          tableCustomers.Columns.Add("CustomerID");
                                                                                                                          tableCustomers.Columns.Add("CustomerName");
                                                                                                                          tableCustomers.Rows.Add(new object[] { 1, "John Doe" });
                                                                                                                          tableCustomers.Rows.Add(new object[] { 2, "Jane Doe" });

                                                                                                                          DataTable tableOrders = new DataTable("Orders");
                                                                                                                          tableOrders.Columns.Add("CustomerID");
                                                                                                                          tableOrders.Columns.Add("ItemName");
                                                                                                                          tableOrders.Columns.Add("Quantity");
                                                                                                                          tableOrders.Rows.Add(new object[] { 1, "Hawaiian", 2 });
                                                                                                                          tableOrders.Rows.Add(new object[] { 2, "Pepperoni", 1 });
                                                                                                                          tableOrders.Rows.Add(new object[] { 2, "Chicago", 1 });

                                                                                                                          DataSet dataSet = new DataSet();
                                                                                                                          dataSet.Tables.Add(tableCustomers);
                                                                                                                          dataSet.Tables.Add(tableOrders);
                                                                                                                          dataSet.Relations.Add(tableCustomers.Columns["CustomerID"], tableOrders.Columns["CustomerID"]);

                                                                                                                          using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                                          {
                                                                                                                              MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                              mailMergerContext.SetRegionsDataSource(dataSet);
                                                                                                                              mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                              using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamWithRegionsDataSet.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                                  MailMerger.Create(mailMergerContext)
                                                                                                                                  .From(streamIn)
                                                                                                                                  .To(streamOut, SaveFormat.Docx)
                                                                                                                                  .Execute();
                                                                                                                          }

Constructors

MailMergerContext()

public MailMergerContext()

Properties

MailMergeOptions

Mail merge options.

public MailMergeOptions MailMergeOptions { get; }

Property Value

MailMergeOptions

Examples

Shows how to do mail merge operation for a single record using context.

// There is a several ways to do mail merge operation:
                                                                                  string doc = MyDir + "Mail merge.doc";

                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                  MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                  mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                  mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                  MailMerger.Create(mailMergerContext)
                                                                                      .From(doc)
                                                                                      .To(ArtifactsDir + "LowCode.MailMergeContext.docx")
                                                                                      .Execute();

Shows how to do mail merge operation for a single record from the stream using context.

// There is a several ways to do mail merge operation using documents from the stream:
                                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                                  using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                  {
                                                                                                      MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                      mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                                      mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                      using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStream.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                          MailMerger.Create(mailMergerContext)
                                                                                                              .From(streamIn)
                                                                                                              .To(streamOut, SaveFormat.Docx)
                                                                                                              .Execute();
                                                                                                  }

Methods

SetRegionsDataSource(DataTable)

Sets data source used to execute mail merge with regions.

public void SetRegionsDataSource(DataTable dataTable)

Parameters

dataTable DataTable

Examples

Shows how to do mail merge with regions operation from a DataTable using context.

// There is a several ways to do mail merge with regions operation from a DataTable:
                                                                                            string doc = MyDir + "Mail merge with regions.docx";

                                                                                            DataTable dataTable = new DataTable("MyTable");
                                                                                            dataTable.Columns.Add("FirstName");
                                                                                            dataTable.Columns.Add("LastName");
                                                                                            dataTable.Rows.Add(new object[] { "John", "Doe" });
                                                                                            dataTable.Rows.Add(new object[] { "", "" });
                                                                                            dataTable.Rows.Add(new object[] { "Jane", "Doe" });

                                                                                            MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                            mailMergerContext.SetRegionsDataSource(dataTable);
                                                                                            mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                            MailMerger.Create(mailMergerContext)
                                                                                                .From(doc)
                                                                                                .To(ArtifactsDir + "LowCode.MailMergeContextWithRegionsDataTable.docx")
                                                                                                .Execute();

Shows how to do mail merge with regions operation from a DataTable using documents from the stream using context.

// There is a several ways to do mail merge with regions operation from a DataTable using documents from the stream:
                                                                                                                            DataTable dataTable = new DataTable("MyTable");
                                                                                                                            dataTable.Columns.Add("FirstName");
                                                                                                                            dataTable.Columns.Add("LastName");
                                                                                                                            dataTable.Rows.Add(new object[] { "John", "Doe" });
                                                                                                                            dataTable.Rows.Add(new object[] { "", "" });
                                                                                                                            dataTable.Rows.Add(new object[] { "Jane", "Doe" });

                                                                                                                            using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                                            {
                                                                                                                                MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                                mailMergerContext.SetRegionsDataSource(dataTable);
                                                                                                                                mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                                using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamWithRegionsDataTable.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                                    MailMerger.Create(mailMergerContext)
                                                                                                                                        .From(streamIn)
                                                                                                                                        .To(streamOut, SaveFormat.Docx)
                                                                                                                                        .Execute();
                                                                                                                            }

Remarks

If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.

SetRegionsDataSource(DataSet)

Sets data source used to execute mail merge with regions.

public void SetRegionsDataSource(DataSet dataSet)

Parameters

dataSet DataSet

Examples

Shows how to do mail merge with regions operation from a DataSet using context.

// There is a several ways to do mail merge with regions operation from a DataSet:
                                                                                          string doc = MyDir + "Mail merge with regions data set.docx";

                                                                                          DataTable tableCustomers = new DataTable("Customers");
                                                                                          tableCustomers.Columns.Add("CustomerID");
                                                                                          tableCustomers.Columns.Add("CustomerName");
                                                                                          tableCustomers.Rows.Add(new object[] { 1, "John Doe" });
                                                                                          tableCustomers.Rows.Add(new object[] { 2, "Jane Doe" });

                                                                                          DataTable tableOrders = new DataTable("Orders");
                                                                                          tableOrders.Columns.Add("CustomerID");
                                                                                          tableOrders.Columns.Add("ItemName");
                                                                                          tableOrders.Columns.Add("Quantity");
                                                                                          tableOrders.Rows.Add(new object[] { 1, "Hawaiian", 2 });
                                                                                          tableOrders.Rows.Add(new object[] { 2, "Pepperoni", 1 });
                                                                                          tableOrders.Rows.Add(new object[] { 2, "Chicago", 1 });

                                                                                          DataSet dataSet = new DataSet();
                                                                                          dataSet.Tables.Add(tableCustomers);
                                                                                          dataSet.Tables.Add(tableOrders);
                                                                                          dataSet.Relations.Add(tableCustomers.Columns["CustomerID"], tableOrders.Columns["CustomerID"]);

                                                                                          MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                          mailMergerContext.SetRegionsDataSource(dataSet);
                                                                                          mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                          MailMerger.Create(mailMergerContext)
                                                                                              .From(doc)
                                                                                              .To(ArtifactsDir + "LowCode.MailMergeContextWithRegionsDataTable.docx")
                                                                                              .Execute();

Shows how to do mail merge with regions operation from a DataSet using documents from the stream using context.

// There is a several ways to do mail merge with regions operation from a DataSet using documents from the stream:
                                                                                                                          DataTable tableCustomers = new DataTable("Customers");
                                                                                                                          tableCustomers.Columns.Add("CustomerID");
                                                                                                                          tableCustomers.Columns.Add("CustomerName");
                                                                                                                          tableCustomers.Rows.Add(new object[] { 1, "John Doe" });
                                                                                                                          tableCustomers.Rows.Add(new object[] { 2, "Jane Doe" });

                                                                                                                          DataTable tableOrders = new DataTable("Orders");
                                                                                                                          tableOrders.Columns.Add("CustomerID");
                                                                                                                          tableOrders.Columns.Add("ItemName");
                                                                                                                          tableOrders.Columns.Add("Quantity");
                                                                                                                          tableOrders.Rows.Add(new object[] { 1, "Hawaiian", 2 });
                                                                                                                          tableOrders.Rows.Add(new object[] { 2, "Pepperoni", 1 });
                                                                                                                          tableOrders.Rows.Add(new object[] { 2, "Chicago", 1 });

                                                                                                                          DataSet dataSet = new DataSet();
                                                                                                                          dataSet.Tables.Add(tableCustomers);
                                                                                                                          dataSet.Tables.Add(tableOrders);
                                                                                                                          dataSet.Relations.Add(tableCustomers.Columns["CustomerID"], tableOrders.Columns["CustomerID"]);

                                                                                                                          using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                                          {
                                                                                                                              MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                              mailMergerContext.SetRegionsDataSource(dataSet);
                                                                                                                              mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                              using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamWithRegionsDataSet.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                                  MailMerger.Create(mailMergerContext)
                                                                                                                                  .From(streamIn)
                                                                                                                                  .To(streamOut, SaveFormat.Docx)
                                                                                                                                  .Execute();
                                                                                                                          }

Remarks

If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.

SetSimpleDataSource(string[], object[])

Sets data source used to execute simple mail merge.

public void SetSimpleDataSource(string[] fieldNames, object[] fieldValues)

Parameters

fieldNames string []

fieldValues object []

Examples

Shows how to do mail merge operation for a single record using context.

// There is a several ways to do mail merge operation:
                                                                                  string doc = MyDir + "Mail merge.doc";

                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                  MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                  mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                  mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                  MailMerger.Create(mailMergerContext)
                                                                                      .From(doc)
                                                                                      .To(ArtifactsDir + "LowCode.MailMergeContext.docx")
                                                                                      .Execute();

Shows how to do mail merge operation for a single record from the stream using context.

// There is a several ways to do mail merge operation using documents from the stream:
                                                                                                  string[] fieldNames = new string[] { "FirstName", "Location", "SpecialCharsInName()" };
                                                                                                  string[] fieldValues = new string[] { "James Bond", "London", "Classified" };

                                                                                                  using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                  {
                                                                                                      MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                      mailMergerContext.SetSimpleDataSource(fieldNames, fieldValues);
                                                                                                      mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                      using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStream.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                          MailMerger.Create(mailMergerContext)
                                                                                                              .From(streamIn)
                                                                                                              .To(streamOut, SaveFormat.Docx)
                                                                                                              .Execute();
                                                                                                  }

Remarks

If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.

SetSimpleDataSource(DataRow)

Sets data source used to execute simple mail merge.

public void SetSimpleDataSource(DataRow dataRow)

Parameters

dataRow DataRow

Examples

Shows how to do mail merge operation from a DataRow using context.

// There is a several ways to do mail merge operation from a DataRow:
                                                                             string doc = MyDir + "Mail merge.doc";

                                                                             DataTable dataTable = new DataTable();
                                                                             dataTable.Columns.Add("FirstName");
                                                                             dataTable.Columns.Add("Location");
                                                                             dataTable.Columns.Add("SpecialCharsInName()");

                                                                             DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                             MailMergerContext mailMergerContext = new MailMergerContext();
                                                                             mailMergerContext.SetSimpleDataSource(dataRow);
                                                                             mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                             MailMerger.Create(mailMergerContext)
                                                                                 .From(doc)
                                                                                 .To(ArtifactsDir + "LowCode.MailMergeContextDataRow.docx")
                                                                                 .Execute();

Shows how to do mail merge operation from a DataRow using documents from the stream using context.

// There is a several ways to do mail merge operation from a DataRow using documents from the stream:
                                                                                                             DataTable dataTable = new DataTable();
                                                                                                             dataTable.Columns.Add("FirstName");
                                                                                                             dataTable.Columns.Add("Location");
                                                                                                             dataTable.Columns.Add("SpecialCharsInName()");

                                                                                                             DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                                                             using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                             {
                                                                                                                 MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                 mailMergerContext.SetSimpleDataSource(dataRow);
                                                                                                                 mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                 using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamDataRow.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                     MailMerger.Create(mailMergerContext)
                                                                                                                         .From(streamIn)
                                                                                                                         .To(streamOut, SaveFormat.Docx)
                                                                                                                         .Execute();
                                                                                                             }

Remarks

If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.

SetSimpleDataSource(DataTable)

Sets data source used to execute simple mail merge.

public void SetSimpleDataSource(DataTable dataTable)

Parameters

dataTable DataTable

Examples

Shows how to do mail merge operation from a DataTable using context.

// There is a several ways to do mail merge operation from a DataTable:
                                                                               string doc = MyDir + "Mail merge.doc";

                                                                               DataTable dataTable = new DataTable();
                                                                               dataTable.Columns.Add("FirstName");
                                                                               dataTable.Columns.Add("Location");
                                                                               dataTable.Columns.Add("SpecialCharsInName()");

                                                                               DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                               MailMergerContext mailMergerContext = new MailMergerContext();
                                                                               mailMergerContext.SetSimpleDataSource(dataTable);
                                                                               mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                               MailMerger.Create(mailMergerContext)
                                                                                   .From(doc)
                                                                                   .To(ArtifactsDir + "LowCode.MailMergeContextDataTable.docx")
                                                                                   .Execute();

Shows how to do mail merge operation from a DataTable using documents from the stream using context.

// There is a several ways to do mail merge operation from a DataTable using documents from the stream:
                                                                                                               DataTable dataTable = new DataTable();
                                                                                                               dataTable.Columns.Add("FirstName");
                                                                                                               dataTable.Columns.Add("Location");
                                                                                                               dataTable.Columns.Add("SpecialCharsInName()");

                                                                                                               DataRow dataRow = dataTable.Rows.Add(new string[] { "James Bond", "London", "Classified" });

                                                                                                               using (FileStream streamIn = new FileStream(MyDir + "Mail merge.doc", FileMode.Open, FileAccess.Read))
                                                                                                               {
                                                                                                                   MailMergerContext mailMergerContext = new MailMergerContext();
                                                                                                                   mailMergerContext.SetSimpleDataSource(dataTable);
                                                                                                                   mailMergerContext.MailMergeOptions.TrimWhitespaces = true;

                                                                                                                   using (FileStream streamOut = new FileStream(ArtifactsDir + "LowCode.MailMergeContextStreamDataTable.docx", FileMode.Create, FileAccess.ReadWrite))
                                                                                                                       MailMerger.Create(mailMergerContext)
                                                                                                                           .From(streamIn)
                                                                                                                           .To(streamOut, SaveFormat.Docx)
                                                                                                                           .Execute();
                                                                                                               }

Remarks

If both simple mail merge data source and data source for mail merge with regions are specified, mail merge with regions is executed first and then simple mail merge is executed.

 English