Փոստային միավորում 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-ով։

 Հայերեն