Hi Alexey,
My output is in .docx. This is my code to do the mailmerge:
private void SaveCertificate(Certificate certificate, string sRootFolder)
{
Document docTmp = (Document)FinalCertificate.Clone(true);
string sCompleteFolder = sRootFolder + "Complete\\";
string sCompleteFileName = sCompleteFolder + certificate.CertificateEmployee.LastName + ", " + certificate.CertificateEmployee.FirstName + "_" + certificate.CertificateSession.FileCode + ".docx";
docTmp.MailMerge.Execute(
new string[] { "First_Name", "Last_Name", "Coursenb", "Coursetitle", "Ville", "Date", "Duration", "Trainer" },
new object[] {
certificate.CertificateEmployee.FirstName,
certificate.CertificateEmployee.LastName,
certificate.CertificateSession.Code,
certificate.CertificateSession.Name,
certificate.CertificateSession.Ville,
certificate.CertificateSession.Date,
certificate.CertificateSession.Duration,
certificate.CertificateSession.Trainer });
if (!Directory.Exists(sCompleteFolder))
Directory.CreateDirectory(sCompleteFolder);
docTmp.Save(sCompleteFileName, SaveFormat.Docx);
}
I let you in attachment my template and an example of the output
I let you also my code to get the template (openfiledialog):
private void btnBrowseCertificate_Click(object sender, EventArgs e)
{
Stream myStream;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "C:\\";
openFileDialog1.Filter = "Word Document (*.doc, *.docx)|*.doc;*docx";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
FinalCertificate = new Document(myStream);
txtCertificate.Text = openFileDialog1.FileName;
btnProcess.Enabled = FinalList != null;
myStream.Close();
}
}
}
Thanks for your time
Steeve