Šiame vadove aprašyta, kaip atlikti laiškų suliejimą MS Word naudojant Java. Jame pateikiami IDE nustatymai, žingsnių sąrašas ir pavyzdinis kodas, parodantis, kaip atlikti laiškų suliejimą Word su Java. Visi reikalingi duomenys yra sugeneruojami kodo viduje, todėl nėra jokių trūkstamų išteklių.
Žingsniai, kaip atlikti laiškų suliejimą Word naudojant Java
- Nustatykite aplinką, kad galėtumėte naudoti Aspose.Words for Java laiškų suliejimui
- Sukurkite Word failo šabloną kaip Document objektą, naudodami DocumentBuilder klasę
- Į šabloną įtraukite visus laukus, naudodami insertField() metodą
- Sukurkite XML įvesties failą pagal laukus Word šablone
- Įkelkite Word šablono failą į Document objektą
- Iškvieskite getMailMerge().execute() metodą Document klasėje, kad sugeneruotumėte išvesties Word failą
- Išsaugokite išvesties Word failą
Aukščiau pateikti žingsniai aprašo, kaip atlikti laiškų suliejimą Word naudojant Java. Galite sukurti naują Word šablono failą su laukais arba įkelti esamą šabloną į Document objektą ir perskaityti XML failą į DataSet objektą. Galiausiai, iškvieskite getMailMerge().execute() metodą, perduodami pasirinktą lentelę, ir išsaugokite gautą dokumentą.
Kodo pavyzdys: laiškų suliejimas MS Word naudojant 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; | |
} | |
} |
Šiame kode įgyvendinti visi laiškų suliejimo žingsniai MS Word naudojant Java. DocumentBuilder klasėje yra daug metodų ir savybių, leidžiančių tinkinti šabloną ir formatuoti ataskaitą. Šis kodas sugeneruos atskirą puslapį išvesties Word faile kiekvienam įrašui lentelėje.
Šiame straipsnyje aptarėme, kaip naudoti laiškų suliejimą Word naudojant Java. Jei norite sužinoti, kaip pritaikyti lentelės stilių esamame Word faile, skaitykite straipsnį Kaip kurti lenteles Word naudojant Java.