We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Little confused about mail merge

Hi there,

I’m a little confused on how the mail merge works with a DataSet / DataTable in C#. I have a DataSet with a DataTable in and multiple rows of data within that table, I’ve lined up the table column names to the merge field names but all i get in the process is a multiple page document without the fields being populated. I can guess that I’ve missed something but I need a little help on what exactly it is.

Thanks

Mike.

Hi

Thanks for your inquiry. Have you specified name of DataTable? You can do this using the following code.

myDataSet.Tables[0].TableName = "myTable";

Also you should use “TableStart:myTable” and “TableEnd:myTable’ field names in the template.

Please see the following link to learn more about mail merge with regions.

http://www.aspose.com/documentation/file-format-components/aspose.words-for-.net-and-java/mail-merge-with-regions-explained.html

Also please attach your template and code for investigating.

Best regards.

First thing I tried, Attached is my template and xml representation of the DataSet, below is the code I’m using.

//create the document
Document doc = new Document(strDocFilename);
//check that there are tables within the
if (ds.Tables.Count > 0)
{
DataTable dt = ds.Tables[0];

doc.MailMerge.Execute(dt);

doc.Save(strSaveFilename);
}

Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Thanks for additional information. You just should use ExecuteWithRegions method. See the following code.

string strDocFilename = @"Test053\Course.doc";

string strOutDocFilename = @"Test053\out.doc";

DataSet ds = new DataSet();

ds.ReadXml(@"Test053\test.xml");

//create the document

Document doc = new Document(strDocFilename);

//check that there are tables within the

if (ds.Tables.Count > 0)

{

DataTable dt = ds.Tables[0];

doc.MailMerge.ExecuteWithRegions(dt);

doc.Save(strOutDocFilename);

}

Best regards.

I tried that too, returns a single page document that is identical to the template.

Turns out i was passing in the wrong dataset, thanks for your help anyway!