Java ile MS Word'de Adres Mektup Birleştirme

Bu kılavuz, Java ile MS Word’de adres mektup birleştirme işleminin nasıl yapılacağını açıklar. IDE’yi ayarlama detayları, adım adım talimatlar ve Java ile Word‘de adres mektup birleştirme işleminin nasıl yapılacağını gösteren örnek bir kod sağlar. Bu kod, eksik kaynak olmadan kodun çalıştırılması için gerekli tüm verileri üretir.

Java ile Word’de Adres Mektup Birleştirme Oluşturma Adımları

  1. Adres mektup birleştirme oluşturmak için Aspose.Words for Java kullanmak üzere ortamı ayarlayın
  2. DocumentBuilder sınıfını kullanarak bir Word dosya şablonunu Document nesnesine dönüştürün
  3. insertField() yöntemini kullanarak şablondaki tüm alanları ekleyin
  4. Şablon Word dosyasındaki alanlara göre giriş XML dosyasını oluşturun
  5. Word şablon dosyasını Document nesnesine yükleyin
  6. Document sınıfındaki getMailMerge().execute() yöntemini çağırarak bir çıktı Word dosyası oluşturun
  7. Çıktı Word dosyasını kaydedin

Yukarıdaki adımlar, Java ile Word’de adres mektup birleştirme işleminin nasıl yapılacağını açıklar. Yeni bir Word şablon dosyası oluşturabilir veya mevcut bir şablon dosyasını Document nesnesine yükleyebilir ve XML dosyasını DataSet nesnesine okuyabilirsiniz. Son olarak, seçilen tabloyu ileterek getMailMerge().execute() yöntemini çağırın ve bu işlevi çağırdıktan sonra çıktıyı kaydedin.

Java ile MS Word’de Adres Mektup Birleştirme Kodu

import com.aspose.words.*;
import com.aspose.words.net.System.Data.DataSet;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws Exception {
License pdfLicense = new License();
pdfLicense.setLicense("license.lic");
// Create a student report template
Document document = createStudentReportTemplate();
document.save("ReportTemplate.docx");
System.out.println("Report Template generated successfully.");
// Generate an XML file with sample student data
String xmlFileName = generateSampleStudentData();
System.out.println("Sample XML file '" + xmlFileName + "' has been created.");
// Perform mail merge using the dataset
Document doc = new Document("ReportTemplate.docx");
DataSet studentDataset = readXmlToDataSet(xmlFileName);
doc.getMailMerge().execute(studentDataset.getTables().get("Student"));
// Save the final report
doc.save("FinalReports.docx");
System.out.println("Mail merge completed. Output saved as 'FinalReports.docx'.");
}
static Document createStudentReportTemplate() throws Exception {
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert student name fields
builder.insertField("MERGEFIELD StudentFirstName \\\u002A MERGEFORMAT");
builder.insertField("MERGEFIELD StudentLastName \\\u002A MERGEFORMAT");
builder.writeln();
// Insert academic details
builder.insertField("MERGEFIELD Subject \\\u002A MERGEFORMAT");
builder.insertBreak(BreakType.LINE_BREAK);
builder.insertField("MERGEFIELD MarksObtained \\\u002A MERGEFORMAT");
builder.insertBreak(BreakType.LINE_BREAK);
builder.insertField("MERGEFIELD TotalMarks \\\u002A MERGEFORMAT");
builder.insertBreak(BreakType.LINE_BREAK);
builder.insertField("MERGEFIELD Grade \\\u002A MERGEFORMAT");
builder.writeln();
// Insert teacher comments
builder.insertField("MERGEFIELD TeacherComments \\\u002A MERGEFORMAT");
builder.insertBreak(BreakType.LINE_BREAK);
// Insert principal's name
builder.insertField("MERGEFIELD PrincipalName \\\u002A MERGEFORMAT");
builder.writeln();
return doc;
}
static String generateSampleStudentData() throws IOException {
String fileName = "StudentData.xml";
String xmlContent = """
<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>
""";
try (FileWriter writer = new FileWriter(fileName)) {
writer.write(xmlContent);
}
return fileName;
}
static DataSet readXmlToDataSet(String xmlFileName) throws Exception {
DataSet dataSet = new DataSet();
dataSet.readXml(xmlFileName);
return dataSet;
}
}

Bu kod, Java ile MS Word’de adres mektup birleştirme adımlarını gerçekleştirir. DocumentBuilder sınıfı, bir raporu biçimlendirmek için şablon dosyasını özelleştirmek üzere ayarlanabilecek birçok yöntem ve özelliğe sahiptir. Bu kod, tablodaki her kayıt için çıktı Word dosyasında ayrı bir sayfa oluşturacaktır.

Bu makale bize Java ile Word’de adres mektup birleştirme işleminin nasıl kullanılacağını öğretti. Mevcut bir dosyada tablo stilini ayarlamak için Java ile Word’de Tablo Tasarımı makalesine başvurabilirsiniz.

 Türkçe