Створення слова з шаблону в 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 for Java

Ви можете завантажити 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>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 і створити документ Word на основі значень об’єкта Sender. Нижче наведено кроки для створення документа Word:

  • Створіть об’єкт Document та ініціалізуйте його шляхом до шаблону.
  • Створити та ініціалізувати об’єкт класу Sender.
  • Створіть об’єкт класу ReportingEngine.
  • Створіть звіт за допомогою методу ReportingEngine.buildReport(), який приймає шаблон документа, джерело даних і назву джерела даних.
  • Збережіть створений документ Word за допомогою методу Document.save().

У наведеному нижче прикладі коду показано, як створити документ Word із шаблону Word за допомогою значень об’єкта Java.

// Створіть об’єкт Document та ініціалізуйте за допомогою шаблону DOCX.
Document doc = new Document("template.docx");
// Створіть об’єкт Sender.
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.

// Створіть об’єкт Document та ініціалізуйте за допомогою шаблону 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

Давайте тепер розглянемо, як створити документ 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.

// Створіть об’єкт Document та ініціалізуйте за допомогою шаблону 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.

// Створіть об’єкт Document та ініціалізуйте за допомогою шаблону 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 – докладніше

LINQ Reporting Engine підтримує широкий спектр тегів для динамічного створення повнофункціональних документів Word у Java. Ви можете дізнатися більше про ці теги разом із їхнім синтаксисом у цій статті.

Якщо у вас виникнуть запитання чи запити, ви можете опублікувати на форумі Aspose.Words.

Пов’язані статті