Sets the MailMerge's data source to a SharePoint View. A MailMerge by default treats the page content as a repeat block, repeating the page content for each row unless NEXT fields are used. If the WordTemplate.EnableNEXTFields property is set to true, the NEXT field can also be used to indicate that the next row of data should be inserted instead of the current row at the next occurence of the merge fields.

public void SetMailMerge(this WordTemplate template, Microsoft.SharePoint.SPView view, Microsoft.SharePoint.SPList list, int maxRows)
Public Sub SetMailMerge(ByVal template As WordTemplate, ByVal view As Microsoft.SharePoint.SPView, ByVal list As Microsoft.SharePoint.SPList, ByVal maxRows As Integer)

Current WordTemplate that is calling SetMailMerge

A SharePoint View to use as a data source.

A SharePoint List to which the view applies

Specifies the maximum number of rows to import from the data source. To import the maximum rows available, use the constant WordTemplate.ALL_ROWS.

Save will throw this exception if null (C#) or Nothing (VB.NET) is passed to the method.

You can call SetMailMerge once for each instance of WordTemplate. If you are using the Excel 2003 binary template file type (.xls/.xlt), you can call SetMailMerge or SetRepeatBlock, but not both.

Additionally, only the page content is repeated for each row, not the entire page itself. If you wish to have the page itself repeat for each row, you will need to remember to place a page break at the bottom of the page.

Merge Fields for using the SetMailMerge method must not specify a data source – the data source is implied, and using a data source name will cause WordTemplate to throw an error. Valid merge field formats for use with SetDataSource include field names («fieldname») and field ordinals («#1»).

This is an extension method for the WordTemplate object to be used for binding SharePoint data to applications from within SharePoint. To use this method, you must add a reference to SoftArtisans.OfficeWriter.WordWriter.SharePointIntegration.dll


          //--- Set the mail merge
          //--- The data source is the SharePoint View myView
          //--- MaxRows is set to ALL_ROWS, which allows all rows to be imported
          wt.SetMailMerge(myView, myList, WordTemplate.ALL_ROWS);
          wt.Process();
        
          '--- Set the mail merge
          '--- The data source is the SharePoint View myView
          '--- MaxRows is set to ALL_ROWS, which allows all rows to be imported
          wt.SetMailMerge(myView, myList, WordTemplate.ALL_ROWS)
          wt.Process()