Spajanje pošte u MS Wordu pomoću C#

Ovaj članak objašnjava kako izvesti spajanje pošte u MS Wordu pomoću C#. Sadrži detalje o postavljanju IDE-a, popis koraka i opsežan primjer koda koji demonstrira kako izvršiti spajanje pošte u Wordu pomoću C#. Svi potrebni podaci generiraju se unutar ovog koda, stoga nije potrebna dodatna ulazna datoteka ili podaci za njegovo izvođenje.

Koraci za izradu spajanja pošte u Wordu pomoću C#

  1. Postavite IDE za korištenje Aspose.Words za .NET kako biste omogućili spajanje pošte
  2. Kreirajte predložak za spajanje pošte koristeći klasu DocumentBuilder
  3. Kreirajte ili učitajte XML datoteku s ulaznim podacima za predložak spajanja pošte
  4. Iz učitane XML datoteke generirajte DataSet
  5. Pozovite metodu MailMerge.Execute() za dokument koristeći generiranu tablicu podataka
  6. Spremite izlaznu Word datoteku s posebnim stranicama za svaki unos u tablici

Ovi koraci objašnjavaju proces spajanja pošte u MS Wordu pomoću C#. Prvo, kreirajte uzorak predloška studentskog izvještaja, generirajte uzorak XML datoteke s podacima o izvještaju i pretvorite ga u tablicu podataka. Zatim pozovite metodu MailMerge.Execute() koristeći naziv ciljne tablice iz DataSet-a i spremite izlaznu Word datoteku na disk.

Kod za izradu spajanja pošte u MS Wordu pomoću C#

using System.Data;
using Aspose.Words;
class Program
{
static void Main()
{
// Apply license
License license = new License();
license.SetLicense("license.lic");
// Create a student report template
Document document = CreateStudentReportTemplate();
document.Save("ReportTemplate.docx");
Console.WriteLine("Report Template generated successfully.");
// Generate an XML file with sample student data
string XmlFileName = GenerateSampleStudentData();
Console.WriteLine($"Sample XML file '{XmlFileName}' has been created.");
// Read the XML data into a DataSet
DataSet studentDataset = new DataSet();
studentDataset.ReadXml(XmlFileName);
// Perform mail merge using the dataset
Document doc = new Document("ReportTemplate.docx");
doc.MailMerge.Execute(studentDataset.Tables["Student"]);
// Save the final report
doc.Save("FinalReports.docx");
Console.WriteLine("Mail merge completed. Output saved as 'FinalReports.docx'.");
}
static Document CreateStudentReportTemplate()
{
// Create a new document using DocumentBuilder
DocumentBuilder builder = new DocumentBuilder();
// Insert student name fields
builder.InsertField("MERGEFIELD StudentFirstName \\* MERGEFORMAT");
builder.InsertField("MERGEFIELD StudentLastName \\* MERGEFORMAT");
builder.InsertParagraph();
// Insert academic details
builder.InsertField("MERGEFIELD Subject \\* MERGEFORMAT");
builder.InsertBreak(BreakType.LineBreak);
builder.InsertField("MERGEFIELD MarksObtained \\* MERGEFORMAT");
builder.InsertBreak(BreakType.LineBreak);
builder.InsertField("MERGEFIELD TotalMarks \\* MERGEFORMAT");
builder.InsertBreak(BreakType.LineBreak);
builder.InsertField("MERGEFIELD Grade \\* MERGEFORMAT");
builder.InsertParagraph();
// Insert teacher comments
builder.InsertField("MERGEFIELD TeacherComments \\* MERGEFORMAT");
builder.InsertBreak(BreakType.LineBreak);
// Insert principal's name
builder.InsertField("MERGEFIELD PrincipalName \\* MERGEFORMAT");
builder.InsertParagraph();
return builder.Document;
}
static string GenerateSampleStudentData()
{
string fileName = "StudentData.xml";
File.WriteAllText(fileName, $@"
<Students>
<Student>
<StudentFirstName>Emily</StudentFirstName>
<StudentLastName>Johnson</StudentLastName>
<Subject>Mathematics</Subject>
<MarksObtained>85</MarksObtained>
<TotalMarks>100</TotalMarks>
<Grade>A</Grade>
<TeacherComments>Excellent performance!</TeacherComments>
<PrincipalName>Dr. William Carter</PrincipalName>
</Student>
<Student>
<StudentFirstName>Liam</StudentFirstName>
<StudentLastName>Smith</StudentLastName>
<Subject>Science</Subject>
<MarksObtained>78</MarksObtained>
<TotalMarks>100</TotalMarks>
<Grade>B</Grade>
<TeacherComments>Good effort, keep improving.</TeacherComments>
<PrincipalName>Dr. William Carter</PrincipalName>
</Student>
</Students>");
return fileName;
}
}

Ovaj kod demonstrira postupak spajanja pošte u MS Wordu korak po korak pomoću C#. Koristili smo metodu DocumentBuilder.InsertField() s oznakom MERGEFIELD kako bismo generirali željeni predložak. Možete primijeniti sve željene stilove i oblikovanja unutar predloška koristeći različite opcije dizajna i izgleda.

Ovaj članak nas je naučio kako implementirati spajanje pošte u MS Wordu korak po korak pomoću C#. Za prilagodbu stilova i dizajna tablica, pogledajte članak Dizajniranje tablica u Wordu pomoću C#.

 Hrvatski