From ed5995b6d58d7fc27f00e64e5f3e91658351047a Mon Sep 17 00:00:00 2001 From: DharanyaSakthivel-SF4210 Date: Thu, 12 Jun 2025 09:38:34 +0530 Subject: [PATCH] ES-885668-mail-merge-with-two-data-sources --- .../.NET/Mail-merge-with-two-data-sources.sln | 25 +++++ .../Data/EmployeesTemplate.docx | Bin 0 -> 14513 bytes .../Data/Picture.png | Bin 0 -> 10630 bytes .../Mail-merge-with-two-data-sources.csproj | 25 +++++ .../Output/.gitkeep | 1 + .../Program.cs | 102 ++++++++++++++++++ 6 files changed, 153 insertions(+) create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources.sln create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Data/EmployeesTemplate.docx create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Data/Picture.png create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Mail-merge-with-two-data-sources.csproj create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Output/.gitkeep create mode 100644 Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Program.cs diff --git a/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources.sln b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources.sln new file mode 100644 index 000000000..9bf1cb24d --- /dev/null +++ b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31911.196 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mail-merge-with-two-data-sources", "Mail-merge-with-two-data-sources\Mail-merge-with-two-data-sources.csproj", "{C17B90BC-F559-456B-B189-90B53FF6CDD4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EF357FC6-E9E5-4E3C-B932-43F727BE1DE4} + EndGlobalSection +EndGlobal diff --git a/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Data/EmployeesTemplate.docx b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Data/EmployeesTemplate.docx new file mode 100644 index 0000000000000000000000000000000000000000..babeaa53303ae6045db6fbdcc7650f7205e88c0d GIT binary patch literal 14513 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 literal 0 HcmV?d00001 diff --git a/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Mail-merge-with-two-data-sources.csproj b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Mail-merge-with-two-data-sources.csproj new file mode 100644 index 000000000..b4f9e5eaf --- /dev/null +++ b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Mail-merge-with-two-data-sources.csproj @@ -0,0 +1,25 @@ + + + + Exe + net8.0 + Mail_merge_with_two_data_sources + + + + + + + + + Always + + + Always + + + Always + + + + diff --git a/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Output/.gitkeep b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Program.cs b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Program.cs new file mode 100644 index 000000000..1b81df6a9 --- /dev/null +++ b/Mail-Merge/Mail-merge-with-two-data-sources/.NET/Mail-merge-with-two-data-sources/Program.cs @@ -0,0 +1,102 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System.Collections.Generic; +using System.Data; +using System.IO; + +namespace Mail_merge_with_two_data_sources +{ + class Program + { + static void Main(string[] args) + { + // Load the Word document + using (WordDocument document = new WordDocument(Path.GetFullPath(@"Data/EmployeesTemplate.docx"))) + { + //Sets “ClearFields” to true to remove empty mail merge fields from document + document.MailMerge.ClearFields = false; + //Gets the employee details as IEnumerable collection. + List employeeList = GetEmployees(); + //Creates an instance of MailMergeDataTable by specifying MailMerge group name and IEnumerable collection. + MailMergeDataTable dataSource = new MailMergeDataTable("Employees", employeeList); + //Performs Mail merge. + document.MailMerge.ExecuteGroup(dataSource); + + //Uses the mail merge events handler for image fields. + document.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MergeField_LogoImage); + //Gets the DataTable + DataTable dataTable = GetDataTable(); + //Performs mail merge to merge the logo + document.MailMerge.Execute(dataTable); + + // Save the modified document + document.Save(Path.GetFullPath(@"../../../Output/Result.docx"), FormatType.Docx); + } + } + /// + /// Gets the employee details to perform mail merge. + /// + public static List GetEmployees() + { + List employees = new List(); + employees.Add(new Employee("Nancy", "Smith", "Sales Representative", "505 - 20th Ave. E. Apt. 2A,", "Seattle", "WA", "USA")); + employees.Add(new Employee("Andrew", "Fuller", "Vice President, Sales", "908 W. Capital Way", "Tacoma", "WA", "USA")); + employees.Add(new Employee("Roland", "Mendel", "Sales Representative", "722 Moss Bay Blvd.", "Kirkland", "WA", "USA")); + employees.Add(new Employee("Margaret", "Peacock", "Sales Representative", "4110 Old Redmond Rd.", "Redmond", "WA", "USA")); + employees.Add(new Employee("Steven", "Buchanan", "Sales Manager", "14 Garrett Hill", "London", "Kirkland", "UK")); + return employees; + } + /// + /// Represents the method that handles MergeImageField event. + /// + private static void MergeField_LogoImage(object sender, MergeImageFieldEventArgs args) + { + //Binds image from file system during mail merge. + if (args.FieldName == "Logo") + { + string photoFileName = args.FieldValue.ToString(); + //Gets the image from file system. + FileStream imageStream = new FileStream(Path.GetFullPath(@"Data/" + photoFileName), FileMode.Open, FileAccess.Read); + args.ImageStream = imageStream; + } + } + private static DataTable GetDataTable() + { + //Creates new DataTable instance + DataTable table = new DataTable(); + //Add columns in DataTable + table.Columns.Add("Logo"); + + //Add record in new DataRow + DataRow row = table.NewRow(); + row["Logo"] = "Picture.png"; + table.Rows.Add(row); + + return table; + } + } + + /// + /// Represents a class to maintain employee details. + /// + public class Employee + { + public string FirstName { get; set; } + public string LastName { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string Region { get; set; } + public string Country { get; set; } + public string Title { get; set; } + public Employee(string firstName, string lastName, string title, string address, string city, string region, string country) + { + FirstName = firstName; + LastName = lastName; + Title = title; + Address = address; + City = city; + Region = region; + Country = country; + } + } +}