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#
- Postavite IDE za korištenje Aspose.Words za .NET kako biste omogućili spajanje pošte
- Kreirajte predložak za spajanje pošte koristeći klasu DocumentBuilder
- Kreirajte ili učitajte XML datoteku s ulaznim podacima za predložak spajanja pošte
- Iz učitane XML datoteke generirajte DataSet
- Pozovite metodu MailMerge.Execute() za dokument koristeći generiranu tablicu podataka
- 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#.