Виконання злиття пошти в MS Word за допомогою Java

Цей посібник описує, як виконати злиття пошти в MS Word за допомогою Java. У ньому наведено деталі щодо налаштування IDE, список кроків та зразок коду, який демонструє як зробити злиття пошти в Word з Java. У цьому коді генерується всі необхідні дані для виконання коду без відсутніх ресурсів.

Кроки для створення злиття пошти в Word з Java

  1. Налаштуйте середовище для використання Aspose.Words for Java для створення злиття пошти
  2. Створіть шаблон файлу Word у об’єкті Document за допомогою класу DocumentBuilder
  3. Додайте всі поля в шаблон за допомогою методу insertField()
  4. Створіть вхідний XML-файл відповідно до полів у шаблоні файлу Word
  5. Завантажте шаблон файлу Word в об’єкт Document
  6. Викличте метод getMailMerge().execute() у класі Document для генерації вихідного файлу Word
  7. Збережіть вихідний файл Word

Наведені вище кроки описують як зробити злиття пошти з Word з Java. Ви можете створити новий шаблон файлу Word з полями або завантажити існуючий шаблон у об’єкт Document та прочитати XML-файл у об’єкт DataSet. Нарешті, викличте метод getMailMerge().execute(), передавши вибрану таблицю, та збережіть вихідний файл після виклику цієї функції.

Код для створення злиття пошти в MS Word з Java

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;
}
}

Цей код виконує всі кроки злиття пошти в MS Word з Java. Клас DocumentBuilder має багато методів і властивостей, які можна налаштувати для форматування шаблону файлу для створення звіту. Цей код генерує окрему сторінку у вихідному файлі Word для кожного запису в таблиці.

Ця стаття навчила нас як використовувати злиття пошти в Word з Java. Щоб налаштувати стиль таблиці в існуючому файлі, зверніться до статті про Проектування таблиць у Word з Java.

 Українська