From 956921dd582e91188e1bc491ac74a7f9015d5873 Mon Sep 17 00:00:00 2001 From: Karan-SF4772 Date: Fri, 17 Oct 2025 13:33:09 +0530 Subject: [PATCH] Added Execute-GroupMailMerge-FirstOccurrenceOnly sample --- ...ute-GroupMailMerge-FirstOccurrenceOnly.sln | 25 ++++ .../Data/Template.docx | Bin 0 -> 44386 bytes .../EmployeeDetails.cs | 22 ++++ ...-GroupMailMerge-FirstOccurrenceOnly.csproj | 24 ++++ .../Organization.cs | 24 ++++ .../Output/.gitkeep | 1 + .../Program.cs | 111 ++++++++++++++++++ 7 files changed, 207 insertions(+) create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly.sln create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Data/Template.docx create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/EmployeeDetails.cs create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Execute-GroupMailMerge-FirstOccurrenceOnly.csproj create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Organization.cs create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Output/.gitkeep create mode 100644 Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Program.cs diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly.sln b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly.sln new file mode 100644 index 000000000..601f5d087 --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36518.9 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Execute-GroupMailMerge-FirstOccurrenceOnly", "Execute-GroupMailMerge-FirstOccurrenceOnly\Execute-GroupMailMerge-FirstOccurrenceOnly.csproj", "{EC618C0E-D312-43D3-AC08-B7673F7A4750}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EC618C0E-D312-43D3-AC08-B7673F7A4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC618C0E-D312-43D3-AC08-B7673F7A4750}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC618C0E-D312-43D3-AC08-B7673F7A4750}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC618C0E-D312-43D3-AC08-B7673F7A4750}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {87877196-7EA7-43C8-98D5-B81300155D80} + EndGlobalSection +EndGlobal diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Data/Template.docx b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Data/Template.docx new file mode 100644 index 0000000000000000000000000000000000000000..890980bcd56e6f9b18ef03e5f06cc3f3236a7be4 GIT binary patch literal 44386 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 X8dXIgyoLh+cj3Qacq4gVdb9O^HlU(+ literal 0 HcmV?d00001 diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/EmployeeDetails.cs b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/EmployeeDetails.cs new file mode 100644 index 000000000..d3be199d3 --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/EmployeeDetails.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Execute_GroupMailMerge_FirstOccurrenceOnly +{ + internal class EmployeeDetails + { + public string EmployeeName { get; } + public string EmployeeID { get; } + public string JoinedDate { get; } + + public EmployeeDetails(string employeeName, string employeeID, string joinedDate) + { + EmployeeName = employeeName; + EmployeeID = employeeID; + JoinedDate = joinedDate; + } + } +} diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Execute-GroupMailMerge-FirstOccurrenceOnly.csproj b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Execute-GroupMailMerge-FirstOccurrenceOnly.csproj new file mode 100644 index 000000000..c5986b5f7 --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Execute-GroupMailMerge-FirstOccurrenceOnly.csproj @@ -0,0 +1,24 @@ + + + + Exe + net8.0 + Execute_GroupMailMerge_FirstOccurrenceOnly + enable + enable + + + + + + + + + Always + + + Always + + + + diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Organization.cs b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Organization.cs new file mode 100644 index 000000000..93b7e6800 --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Organization.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Execute_GroupMailMerge_FirstOccurrenceOnly +{ + internal class Organization + { + public string BranchName { get; } + public string Address { get; } + public string Country { get; } + public List Employees { get; } + + public Organization(string branchName, string address, string country, List employees) + { + BranchName = branchName; + Address = address; + Country = country; + Employees = employees; + } + } +} diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Output/.gitkeep b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Program.cs b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Program.cs new file mode 100644 index 000000000..4cfc61433 --- /dev/null +++ b/Mail-Merge/Execute-GroupMailMerge-FirstOccurrenceOnly/.NET/Execute-GroupMailMerge-FirstOccurrenceOnly/Program.cs @@ -0,0 +1,111 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System; +using System.Collections.Generic; +using System.IO; + +namespace Execute_GroupMailMerge_FirstOccurrenceOnly +{ + class Program + { + static void Main() + { + // Load the Word template document + WordDocument document = new WordDocument(Path.GetFullPath(@"Data/Template.docx")); + // Get all merge field names from the document + string[] mergeGroupNames = document.MailMerge.GetMergeFieldNames(); + // Create a dictionary to count how many times each merge field appears + Dictionary groupNameCounts = new Dictionary(); + foreach (string groupName in mergeGroupNames) + { + // Increase count if field already exists, else add it + if (groupNameCounts.ContainsKey(groupName)) + groupNameCounts[groupName]++; + else + groupNameCounts[groupName] = 1; + } + // Remove duplicate merge field groups + foreach (var groupEntry in groupNameCounts) + { + string groupName = groupEntry.Key; + // Skip if the field appears only once + if (groupEntry.Value <= 1) + continue; + // Find all merge fields with the same name + List mergeGroups = document.FindAllItemsByProperty(EntityType.MergeField, "FieldName", groupName); + // Start from second occurrence to remove duplicates + for (int i = 1; i < mergeGroups.Count; i++) + { + WMergeField mergeField = mergeGroups[i] as WMergeField; + // Check if it's a group start field + if (mergeField.FieldCode.Contains("TableStart") || mergeField.FieldCode.Contains("BeginGroup")) + { + // Add bookmark start before the group + BookmarkStart bkmkStart = new BookmarkStart(document, groupName); + WParagraph startPara = mergeField.OwnerParagraph; + int mergeFieldIndex = startPara.ChildEntities.IndexOf(mergeField); + startPara.ChildEntities.Insert(mergeFieldIndex, bkmkStart); + // Add bookmark end after the group + WMergeField endField = mergeGroups[i + 1] as WMergeField; + BookmarkEnd bkmkEnd = new BookmarkEnd(document, groupName); + WParagraph endPara = endField.OwnerParagraph; + int endFieldIndex = endPara.ChildEntities.IndexOf(endField); + endPara.ChildEntities.Insert(endFieldIndex + 1, bkmkEnd); + // Delete content inside the bookmark + BookmarksNavigator navigator = new BookmarksNavigator(document); + navigator.MoveToBookmark(groupName); + navigator.DeleteBookmarkContent(false); + document.Bookmarks.Remove(navigator.CurrentBookmark); + // Remove owner table if applicable + if (startPara.OwnerTextBody.Owner.EntityType == EntityType.TableRow) + { + WTableRow tableRow = startPara.OwnerTextBody.Owner as WTableRow; + WTable ownerTable = tableRow.Owner as WTable; + Entity currentEntity = ownerTable; + // Traverse up to find the section and remove the table + while (currentEntity != null) + { + if (currentEntity is WSection section) + { + section.Body.ChildEntities.Remove(ownerTable); + break; + } + currentEntity = currentEntity.Owner; + } + } + } + } + } + // Prepare nested mail merge data + List organizationList = GetOrganizations(); + MailMergeDataTable dataTable = new MailMergeDataTable("Organizations", organizationList); + // Execute nested mail merge using the data + document.MailMerge.ExecuteNestedGroup(dataTable); + // Save the result + document.Save(Path.GetFullPath(@"../../../Output/Result.docx")); + // Close the document + document.Close(); + } + + /// + /// Create sample organization and employee data + /// + /// Return the organization list + public static List GetOrganizations() + { + // Create a list of employees + List employees = new List + { + new EmployeeDetails("Thomas Hardy", "1001", "05/27/1996"), + new EmployeeDetails("Maria Anders", "1002", "04/10/1998") + }; + // Create a list of organizations with employee data + List organizations = new List + { + new Organization("UK Office", "120 Hanover Sq.", "UK", employees) + }; + // Return the organization list + return organizations; + } + } +}