Java で MS Word の差し込み印刷を実行する

このガイドでは、Java で MS Word の差し込み印刷を実行する方法を説明します。IDE の設定手順、必要なステップ、そして Word での差し込み印刷を Java で実行する方法 を示すサンプルコードを紹介します。必要なデータはすべてコード内で提供されており、追加のリソースなしで実行できます。

Java で MS Word の差し込み印刷を作成する手順

  1. Aspose.Words for Java を設定し、差し込み印刷を実行する環境を整える
  2. DocumentBuilder クラスを使用して、Word のテンプレートファイルを Document オブジェクトに作成する
  3. insertField() メソッドを使用して、テンプレートにすべてのフィールドを追加する
  4. テンプレートのフィールドに基づいた XML 入力ファイルを作成する
  5. Word テンプレートファイルを Document オブジェクトに読み込む
  6. getMailMerge().execute() メソッドを呼び出し、出力 Word ファイルを生成する
  7. 出力 Word ファイルを保存する

これらの手順を通じて、Java で Word の差し込み印刷を実行する方法 を説明しました。新しい Word テンプレートを作成してフィールドを追加するか、既存のテンプレートファイルを Document オブジェクトに読み込み、XML ファイルを DataSet オブジェクトにロードできます。最後に、getMailMerge().execute() メソッドを呼び出し、結果を保存します。

Java で MS Word の差し込み印刷を作成するコード

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

このコードでは、Java で MS Word の差し込み印刷を実行する手順 をすべて適用しています。DocumentBuilder クラスには多くのメソッドやプロパティがあり、レポートのフォーマットをカスタマイズできます。このコードを実行すると、テーブルの各レコードに対して、出力 Word ファイルに個別のページが作成されます。

この記事では、Java で Word の差し込み印刷を使用する方法 を紹介しました。既存の Word ファイル内のテーブルのスタイルを設定する方法については、Java で Word のテーブルをデザインする の記事をご覧ください。

 日本語