צור מילה מתבנית ב-Java

תהליך הפקת הדוחות מורכב לעתים קרובות ממילוי תבניות המסמך המוגדרות מראש המכילות את מצייני המיקום עבור השדות הרצויים. מנועי הדיווח לוקחים את מסמך התבנית כקלט, מאכלסים את מצייני המיקום בנתונים באופן דינמי ומייצרים את הדוחות המתקבלים. אם אתה מחפש תוכנית Java להפקת מסמכי Word מתבניות, מאמר זה הולך לתת לך את הפתרון הטוב ביותר. אז בואו נראה כיצד ליצור מסמכי Word על ידי איכלוס התבניות באופן תוכנתי ב-Java.

ספריית Java ליצירת מסמכי Word מתבניות

כדי ליצור מסמכי Word מתבניות DOCX, נשתמש ב-LINQ Reporting Engine המוצע על ידי Aspose.Words for Java. LINQ Reporting Engine תומך במגוון תגים עבור טקסט, תמונות, רשימות, טבלאות, היפר-קישורים וסימניות עבור תבניות Word. מסמכי התבנית המכילים תגים אלה מאוכלסים על ידי המנוע בנתונים המגיעים מאובייקטי Java וכן ממקורות נתונים של XML, JSON או CSV. אז בואו נתחיל ליצור את מסמכי Word מהתבניות באמצעות Java.

מאמר זה יעסוק כיצד ליצור מסמך Word מתבנית באמצעות:

  • ערכים מאובייקטי Java,
  • מקור נתונים XML,
  • מקור נתונים JSON,
  • ומקור נתונים CSV.

התקנת Aspose.Words עבור Java

אתה יכול להוריד את Aspose.Words עבור 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>22.11</version>
    <type>pom</type>
</dependency>

צור מסמכי Word מתבנית באמצעות אובייקטי Java

כדי להתחיל את יצירת הדוחות, בואו ניצור תחילה מסמך Word על ידי מילוי התבנית בערכים מאובייקטי Java. כדי להגדיר תבנית מסמך, צור מסמך Word חדש, הכנס את התגים הבאים ושמור אותו כמסמך DOCX.

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

בתבנית שלמעלה, “s” יטופל כאובייקט של מחלקת Java שישמש לאכלוס התגים. אז בואו ניצור מחלקה בשם Sender עם שני חברי נתונים.

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 על סמך הערכים של האובייקט של Sender. להלן השלבים ליצירת מסמך Word:

  • צור את האובייקט מסמך ואתחול אותו עם הנתיב של התבנית.
  • צור ואתחול אובייקט של מחלקה Sender.
  • צור אובייקט במחלקה 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

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");

תְפוּקָה

צור מסמך Word לפי תבנית עם XML ב-Java

Java: צור מסמכי Word מתבנית באמצעות JSON Data

כעת נראה כיצד ליצור מסמך 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 ב-Java

אחרון חביב, הבה נבדוק כיצד ליצור את מסמך 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");

תְפוּקָה

צור מסמך Word עם CSV ב-Java

צור מסמכי Word עם רישיון חינם

אתה יכול לקבל רישיון זמני בחינם ולהפיק מסמכי Word ללא מגבלות הערכה.

Java LINQ Reporting Engine - קרא עוד

LINQ Reporting Engine תומך במגוון רחב של תגים להפקת מסמכי Word עם תכונות מלאות באופן דינמי ב-Java. אתה יכול לחקור עוד על תגים אלה יחד עם התחביר שלהם ב מאמר זה.

למקרה שיהיו לך שאלות או שאילתות כלשהן, תוכל לכתוב ב-Aspose.Words Forum.

מאמרים קשורים)