توليد كلمة من قالب في جافا

غالبًا ما تتكون عملية إنشاء التقرير من ملء قوالب المستندات المحددة مسبقًا التي تحتوي على العناصر النائبة للحقول المطلوبة. تأخذ محركات التقارير مستند النموذج كمدخلات ، وتملأ العناصر النائبة بالبيانات ديناميكيًا وتقوم بإنشاء التقارير الناتجة. ستعرض هذه المقالة أيضًا حالة استخدام مماثلة حيث يمكنك إنشاء مستندات Word عن طريق ملء قوالب Word ديناميكيًا وبرمجيًا باستخدام Java.

لإنشاء مستندات Word من قوالب DOCX ، سنستخدم LINQ Reporting Engine الذي توفره Aspose.Words for Java API. يدعم LINQ Reporting Engine مجموعة متنوعة من العلامات للنصوص والصور والقوائم والجداول والارتباطات التشعبية والإشارات المرجعية لقوالب Word. يتم ملء مستندات القوالب التي تحتوي على هذه العلامات بواسطة المحرك ببيانات قادمة من كائنات Java بالإضافة إلى مصادر بيانات XML أو JSON أو CSV. لذلك لنبدأ في إنشاء مستندات Word من القوالب باستخدام Java.

تتناول هذه المقالة كيفية إنشاء مستند Word من قالب باستخدام:

  • القيم من كائنات جافا ،
  • مصدر بيانات XML ،
  • مصدر بيانات JSON ،
  • ومصدر بيانات CSV.

تثبيت Aspose.Words لجافا - أتمتة Word و Report Generation API

يمكنك تنزيل Aspose.Words for Java JAR أو إضافته إلى تطبيقك المستند إلى Maven باستخدام التكوينات التالية.

مخزن:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

الاعتماد:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.1</version>
    <type>pom</type>
</dependency>

قم بإنشاء مستندات Word من قالب باستخدام كائنات Java

لبدء إنشاء التقرير ، دعنا أولاً ننشئ مستند Word عن طريق ملء القالب بقيم من كائنات Java. لتعريف قالب مستند ، قم بإنشاء مستند Word جديد ، وأدخل العلامات التالية واحفظه كمستند DOCX.

<<[s.getName()]>> says: "<<[s.getMessage()]>>."

في القالب أعلاه ، سيتم التعامل مع “s” ككائن من فئة Java التي سيتم استخدامها لملء العلامات. لذلك دعونا ننشئ فئة باسم المرسل تضم عضوين من أعضاء البيانات.

public class Sender {
    public Sender(String name, String message) {
        _name = name;
        _message = message;
    } 
    public String getName() {
        return _name;
    } 
    public String getMessage() {
        return _message;
    } 
    private String _name;
    private String _message;
}

حان الوقت الآن لتمرير قالب Word إلى LINQ Reporting Engine وإنشاء مستند Word استنادًا إلى قيم كائن المرسل. فيما يلي خطوات إنشاء مستند Word:

  • قم بإنشاء كائن مستند وتهيئته بمسار القالب.
  • إنشاء وتهيئة كائن من فئة المرسل.
  • قم بإنشاء كائن من فئة ReportingEngine.
  • قم بإنشاء التقرير باستخدام أسلوب ReportingEngine.buildReport() الذي يقبل قالب المستند ومصدر البيانات واسم مصدر البيانات.
  • احفظ مستند Word الذي تم إنشاؤه باستخدام طريقة Document.save().

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من قالب Word باستخدام قيم كائن Java.

// إنشاء كائن المستند والتهيئة باستخدام قالب DOCX.
Document doc = new Document("template.docx");
// إنشاء كائن المرسل.
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
// إنشاء كائن ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// تقرير البناء.
engine.buildReport(doc, sender, "s");
// حفظ كمستند Word.
doc.save("word.docx");

انتاج |

إنشاء مستند Word حسب القالب باستخدام كائنات Java

إنشاء مستندات Word من قالب باستخدام بيانات XML

لنأخذ الآن خطوة أخرى إلى الأمام ونرى كيفية تعبئة قوالب Word باستخدام مصدر بيانات XML في سيناريو معقد بعض الشيء. ما يلي هو مصدر بيانات XML الذي سنستخدمه لملء قالب Word.

<Persons>
   <Person>
       <Name>John Doe</Name>
       <Age>30</Age>
       <Birth>1989-04-01 4:00:00 pm</Birth>
   </Person>
   <Person>
       <Name>Jane Doe</Name>
       <Age>27</Age>
       <Birth>1992-01-31 07:00:00 am</Birth>
   </Person>
   <Person>
       <Name>John Smith</Name>
       <Age>51</Age>
       <Birth>1968-03-08 1:00:00 pm</Birth>
   </Person>
</Persons>

في هذا السيناريو ، سنستخدم العلامات التالية في مستند القالب لسجلات متعددة في مصدر بيانات XML.

<<foreach [in persons]>>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.average(p => p.Age)]>>

كود Java لإنشاء مستند Word ، في هذه الحالة ، سيكون هو نفسه وباستثناء تمرير كائن Java كمصدر بيانات ، سنمرر الكائن XmlDataSource في طريقة ReportingEngine.buildReport().يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word عن طريق ملء قالب المستند باستخدام مصدر بيانات XML في Java.

// إنشاء كائن المستند والتهيئة باستخدام قالب DOCX.
Document doc = new Document("template.docx");
// تحميل XML
XmlDataSource dataSource = new XmlDataSource("./datasource.xml");
// إنشاء كائن ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// تقرير البناء.
engine.buildReport(doc, dataSource, "persons");
// حفظ كمستند Word.
doc.save("word.docx");

انتاج |

إنشاء مستند كلمة حسب القالب باستخدام XML في Java

قم بإنشاء مستندات Word من قالب باستخدام بيانات JSON

دعنا الآن نلقي نظرة على كيفية إنشاء مستند Word من قالب DOCX باستخدام مصدر بيانات JSON. فيما يلي بيانات JSON التي سنستخدمها في هذا المثال.

[
   {
       Name: "John Smith",
       Contract:
       [
           {
               Client:
               {
                   Name: "A Company"
               },
               Price: 1200000
           },
           {
               Client:
               {
                   Name: "B Ltd."
               },
               Price: 750000
           },
           {
               Client:
               {
                   Name: "C & D"
               },
               Price: 350000
           }
       ]
   },
   {
       Name: "Tony Anderson",
       Contract:
       [
           {
               Client:
               {
                   Name: "E Corp."
               },
               Price: 650000
           },
           {
               Client:
               {
                   Name: "F & Partners"
               },
               Price: 550000
           }
       ]
   },
]

في هذا المثال ، سننشئ مستند Word الذي يحتوي على قائمة بالعملاء تم تجميعهم بواسطة مديريهم. وفقًا لهذا السيناريو ، سيبدو نموذج DOCX كما يلي:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

لتحميل مصدر بيانات JSON ، يوفر Aspose.Words فئة JsonDataSource. يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word من القالب باستخدام مصدر بيانات JSON في Java.

// إنشاء كائن المستند والتهيئة باستخدام قالب DOCX.
Document doc = new Document("template.docx");
// تحميل JSON
JsonDataSource dataSource = new JsonDataSource("datasource.json");
// إنشاء كائن ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// تقرير البناء.
engine.buildReport(doc, dataSource, "managers");
// حفظ كمستند Word.
doc.save("word.docx");

انتاج |

إنشاء مستند Word باستخدام JSON في Java

قم بإنشاء مستندات Word من قالب باستخدام بيانات CSV

أخيرًا وليس آخرًا ، دعنا نتحقق من كيفية إنشاء مستند Word عن طريق ملء قالب Word باستخدام مصدر بيانات CSV التالي.

John Doe,30,1989-04-01 4:00:00 pm
Jane Doe,27,1992-01-31 07:00:00 am
John Smith,51,1968-03-08 1:00:00 pm

سيتم استخدام قالب Word التالي في هذا المثال:

<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.average(p => p.Column2)]>>

للتعامل مع مصادر بيانات CSV ، تقدم Aspose.Words فئة CsvDataSource. يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء مستند Word باستخدام مصدر بيانات CSV في Java.

// إنشاء كائن المستند والتهيئة باستخدام قالب DOCX.
Document doc = new Document("template.docx");
// تحميل CSV
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
// إنشاء كائن ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// تقرير البناء.
engine.buildReport(doc, dataSource, "persons");
// حفظ كمستند Word.
doc.save("word.docx");

انتاج |

إنشاء مستند كلمة مع CSV في جافا

تعرف على المزيد حول LINQ Reporting Engine

يدعم LINQ Reporting Engine مجموعة كبيرة من العلامات لإنشاء مستندات Word كاملة الميزات ديناميكيًا في Java. يمكنك استكشاف المزيد حول هذه العلامات جنبًا إلى جنب مع تركيبها في هذه المقالة.

في حال كان لديك أي أسئلة أو استفسارات ، يمكنك إرسالها إلى Aspose.Words Forum.

مقالات ذات صلة)