Vygenerujte slovo ze šablony v jazyce Java

Proces generování sestav často spočívá v naplnění předdefinovaných šablon dokumentů obsahujících zástupné symboly pro požadovaná pole. Moduly vytváření sestav berou jako vstup šablonu dokumentu, dynamicky naplňují zástupné symboly daty a generují výsledné sestavy. Pokud hledáte program Java pro generování dokumentů Word ze šablon, tento článek vám poskytne nejlepší řešení. Pojďme se tedy podívat, jak vytvořit dokumenty Wordu programovým vyplněním šablon v Javě.

Java Library pro generování dokumentů aplikace Word ze šablon

Ke generování dokumentů Word ze šablon DOCX použijeme LINQ Reporting Engine nabízený Aspose.Words for Java. LINQ Reporting Engine podporuje různé značky pro text, obrázky, seznamy, tabulky, hypertextové odkazy a záložky pro šablony aplikace Word. Šablonové dokumenty obsahující tyto značky jsou naplněny modulem daty pocházejícími z objektů Java a také datovými zdroji XML, JSON nebo CSV. Začněme tedy generovat dokumenty Wordu ze šablon pomocí Java.

Tento článek se bude zabývat tím, jak vygenerovat dokument Word ze šablony pomocí:

  • hodnoty z objektů Java,
  • XML zdroj dat,
  • zdroj dat JSON,
  • a zdroj dat CSV.

Instalace Aspose.Words for Java

Můžete si stáhnout Aspose.Words for Java JAR nebo je přidat do své aplikace založené na Maven pomocí následujících konfigurací.

úložiště:

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

Závislost:

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

Generujte dokumenty Word ze šablony pomocí objektů Java

Chcete-li začít s generováním sestav, nejprve vytvořte dokument aplikace Word vyplněním šablony hodnotami z objektů Java. Chcete-li definovat šablonu dokumentu, vytvořte nový dokument aplikace Word, vložte následující značky a uložte jej jako dokument DOCX.

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

Ve výše uvedené šabloně bude “s” považováno za objekt třídy Java, který bude použit k naplnění značek. Vytvořme tedy třídu s názvem Sender se dvěma datovými členy.

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

Nyní je čas předat šablonu aplikace Word do modulu LINQ Reporting Engine a vygenerovat dokument aplikace Word na základě hodnot objektu Sender. Níže jsou uvedeny kroky pro generování dokumentu aplikace Word:

  • Vytvořte objekt Document a inicializujte jej s cestou k šabloně.
  • Vytvořte a inicializujte objekt třídy Sender.
  • Vytvořte objekt třídy ReportingEngine.
  • Sestavte sestavu pomocí metody ReportingEngine.buildReport(), která přijímá šablonu dokumentu, zdroj dat a název zdroje dat.
  • Uložte vygenerovaný dokument Word pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony aplikace Word pomocí hodnot objektu Java.

// Vytvořte objekt dokumentu a inicializujte jej pomocí šablony DOCX.
Document doc = new Document("template.docx");
// Vytvořit objekt odesílatele.
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
// Vytvořte objekt ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// Sestavit zprávu.
engine.buildReport(doc, sender, "s");
// Uložit jako dokument aplikace Word.
doc.save("word.docx");

Výstup

generovat dokument aplikace Word podle šablony s objekty Java

Java: Vytvářejte dokumenty Word ze šablony pomocí dat XML

Pojďme nyní o krok dále a podívejme se, jak naplnit šablony aplikace Word pomocí zdroje dat XML v trochu složitém scénáři. Následuje zdroj dat XML, který použijeme k naplnění šablony aplikace 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>

V tomto scénáři použijeme následující značky v dokumentu šablony pro více záznamů ve zdroji dat XML.

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

Kód Java pro generování dokumentu aplikace Word by v tomto případě byl stejný a kromě předání objektu Java jako zdroje dat předáme objekt XmlDataSource v metodě ReportingEngine.buildReport(). Následující ukázka kódu ukazuje, jak vytvořit dokument aplikace Word vyplněním šablony dokumentu pomocí zdroje dat XML v jazyce Java.

// Vytvořte objekt dokumentu a inicializujte jej pomocí šablony DOCX.
Document doc = new Document("template.docx");
// Načíst XML
XmlDataSource dataSource = new XmlDataSource("./datasource.xml");
// Vytvořte objekt ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// Sestavit zprávu.
engine.buildReport(doc, dataSource, "persons");
// Uložit jako dokument aplikace Word.
doc.save("word.docx");

Výstup

generovat dokument aplikace Word podle šablony s XML v Javě

Java: Generujte dokumenty Word ze šablony pomocí dat JSON

Pojďme se nyní podívat na to, jak vygenerovat dokument Word ze šablony DOCX pomocí zdroje dat JSON. Následují data JSON, která použijeme v tomto příkladu.

[
   {
       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
           }
       ]
   },
]

V tomto příkladu vygenerujeme dokument Word obsahující seznam klientů seskupených podle jejich manažerů. Podle tohoto scénáře bude šablona DOCX vypadat takto:

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

Pro načítání zdroje dat JSON poskytuje Aspose.Words třídu JsonDataSource. Následující ukázka kódu ukazuje, jak vytvořit dokument aplikace Word ze šablony pomocí zdroje dat JSON v Javě.

// Vytvořte objekt dokumentu a inicializujte jej pomocí šablony DOCX.
Document doc = new Document("template.docx");
// Načíst JSON
JsonDataSource dataSource = new JsonDataSource("datasource.json");
// Vytvořte objekt ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// Sestavit zprávu.
engine.buildReport(doc, dataSource, "managers");
// Uložit jako dokument aplikace Word.
doc.save("word.docx");

Výstup

vytvořit dokument aplikace Word s JSON v Javě

Generujte dokumenty Word s daty CSV v Javě

V neposlední řadě se podívejme, jak vygenerovat dokument aplikace Word vyplněním šablony aplikace Word pomocí následujícího zdroje dat 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

V tomto příkladu bude použita následující šablona aplikace Word:

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

Pro práci s datovými zdroji CSV nabízí Aspose.Words třídu CsvDataSource. Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word pomocí zdroje dat CSV v jazyce Java.

// Vytvořte objekt dokumentu a inicializujte jej pomocí šablony DOCX.
Document doc = new Document("template.docx");
// Načíst soubor CSV
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
// Vytvořte objekt ReportingEngine.
ReportingEngine engine = new ReportingEngine();
// Sestavit zprávu.
engine.buildReport(doc, dataSource, "persons");
// Uložit jako dokument aplikace Word.
doc.save("word.docx");

Výstup

vytvořit dokument aplikace Word s CSV v jazyce Java

Vytvářejte dokumenty Word s bezplatnou licencí

Můžete získat bezplatnou dočasnou licenci a generovat dokumenty Word bez omezení hodnocení.

Java LINQ Reporting Engine – Přečtěte si více

LINQ Reporting Engine podporuje širokou škálu značek pro dynamické generování plně vybavených dokumentů Wordu v Javě. Více o těchto značkách spolu s jejich syntaxí můžete prozkoumat v tomto článku.

V případě, že byste měli nějaké dotazy nebo dotazy, můžete poslat příspěvek na Aspose.Words Forum.

Související články