Java'da şablondan kelime üret

Rapor oluşturma süreci genellikle, istenen alanlar için yer tutucuları içeren önceden tanımlanmış belge şablonlarının doldurulmasından oluşur. Raporlama motorları, şablon belgeyi girdi olarak alır, yer tutucuları verilerle dinamik olarak doldurur ve sonuçta ortaya çıkan raporları oluşturur. Bu makale ayrıca Java kullanarak Word şablonlarını dinamik ve programlı olarak doldurarak Word belgelerini oluşturabileceğiniz benzer bir kullanım durumunu gösterecek.

DOCX şablonlarından Word belgeleri oluşturmak için Aspose.Words for Java API tarafından sunulan LINQ Raporlama Motoru’nı kullanacağız. LINQ Raporlama Motoru, Word şablonları için metin, resimler, listeler, tablolar, köprüler ve yer imleri için çeşitli etiketleri destekler. Bu etiketleri içeren şablon belgeler, motor tarafından XML, JSON veya CSV veri kaynaklarının yanı sıra Java nesnelerinden gelen verilerle doldurulur. O halde Java kullanarak şablonlardan Word belgeleri oluşturmaya başlayalım.

Bu makale, aşağıdakileri kullanarak bir şablondan Word belgesinin nasıl oluşturulacağını kapsayacaktır:

  • Java nesnelerinden alınan değerler,
  • XML veri kaynağı,
  • JSON veri kaynağı,
  • ve CSV veri kaynağı.

Aspose.Words for Java Kurulumu - Word Automation and Report Generation API

Aspose.Words for Java JAR dosyasını indirebilir veya aşağıdaki yapılandırmaları kullanarak Maven tabanlı uygulamanıza ekleyebilirsiniz.

Depo:

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

Bağımlılık:

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

Java Nesnelerini Kullanarak Şablondan Word Belgeleri Oluşturun

Rapor oluşturmaya başlamak için, önce şablonu Java nesnelerinden alınan değerlerle doldurarak bir Word belgesi oluşturalım. Bir belge şablonu tanımlamak için yeni bir Word belgesi oluşturun, aşağıdaki etiketleri ekleyin ve DOCX belgesi olarak kaydedin.

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

Yukarıdaki şablonda “s”, etiketleri doldurmak için kullanılacak Java sınıfının bir nesnesi olarak ele alınacaktır. O halde iki veri üyeli Sender adında bir sınıf oluşturalım.

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

Şimdi, Word şablonunu LINQ Raporlama Motoruna geçirme ve Word belgesini Gönderenin nesnesinin değerlerine dayalı olarak oluşturma zamanı. Word belgesini oluşturmak için adımlar şunlardır:

  • Belge nesnesini oluşturun ve şablonun yolu ile başlatın.
  • Sender sınıfından bir nesne oluşturun ve başlatın.
  • ReportingEngine sınıfından bir nesne oluşturun.
  • Belge şablonunu, veri kaynağını ve veri kaynağının adını kabul eden ReportingEngine.buildReport() yöntemini kullanarak raporu oluşturun.
  • Oluşturulan Word belgesini Document.save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, Java nesnesinin değerlerini kullanarak bir Word şablonundan bir Word belgesinin nasıl oluşturulacağını gösterir.

// Belge nesnesi oluşturun ve DOCX şablonuyla başlatın.
Document doc = new Document("template.docx");
// Gönderen nesnesi oluşturun.
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
// ReportingEngine nesnesi oluşturun.
ReportingEngine engine = new ReportingEngine();
// Rapor oluşturun.
engine.buildReport(doc, sender, "s");
// Word belgesi olarak kaydedin.
doc.save("word.docx");

Çıktı

Java nesneleri ile şablona göre kelime belgesi oluşturun

XML Verilerini Kullanarak Şablondan Word Belgeleri Oluşturun

Şimdi bir adım daha ileri gidelim ve biraz karmaşık bir senaryoda bir XML veri kaynağı kullanarak Word şablonlarını nasıl dolduracağımızı görelim. Word şablonunu doldurmak için kullanacağımız XML veri kaynağı aşağıdadır.

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

Bu senaryoda, XML veri kaynağındaki birden çok kayıt için şablon belgesinde aşağıdaki etiketleri kullanacağız.

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

Bu durumda, Word belgesi oluşturmak için kullanılan Java kodu aynı olacaktır ve Java nesnesini veri kaynağı olarak iletme dışında, ReportingEngine.buildReport() yönteminde XmlDataSource nesnesini ileteceğiz. Aşağıdaki kod örneği, Java’da XML veri kaynağını kullanarak belge şablonunu doldurarak bir Word belgesinin nasıl oluşturulacağını gösterir.

// Belge nesnesi oluşturun ve DOCX şablonuyla başlatın.
Document doc = new Document("template.docx");
// XML yükle
XmlDataSource dataSource = new XmlDataSource("./datasource.xml");
// ReportingEngine nesnesi oluşturun.
ReportingEngine engine = new ReportingEngine();
// Rapor oluşturun.
engine.buildReport(doc, dataSource, "persons");
// Word belgesi olarak kaydedin.
doc.save("word.docx");

Çıktı

Java'da XML ile şablona göre kelime belgesi oluşturun

JSON Verilerini Kullanarak Şablondan Word Belgeleri Oluşturun

Şimdi bir JSON veri kaynağı kullanarak DOCX şablonundan Word belgesinin nasıl oluşturulacağına bir göz atalım. Bu örnekte kullanacağımız JSON verileri aşağıdadır.

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

Bu örnekte, yöneticileri tarafından gruplandırılmış müşterilerin bir listesini içeren Word belgesini oluşturacağız. Bu senaryoya göre, DOCX şablonu aşağıdaki gibi görünecektir:

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

Aspose.Words, JSON veri kaynağını yüklemek için JsonDataSource sınıfını sağlar. Aşağıdaki kod örneği, Java’da bir JSON veri kaynağı kullanılarak şablondan bir Word belgesinin nasıl oluşturulacağını gösterir.

// Belge nesnesi oluşturun ve DOCX şablonuyla başlatın.
Document doc = new Document("template.docx");
// JSON'u yükle
JsonDataSource dataSource = new JsonDataSource("datasource.json");
// ReportingEngine nesnesi oluşturun.
ReportingEngine engine = new ReportingEngine();
// Rapor oluşturun.
engine.buildReport(doc, dataSource, "managers");
// Word belgesi olarak kaydedin.
doc.save("word.docx");

Çıktı

Java'da JSON ile kelime belgesi oluşturun

CSV Verilerini Kullanarak Şablondan Word Belgeleri Oluşturun

Son olarak, aşağıdaki CSV veri kaynağını kullanarak Word şablonunu doldurarak Word belgesinin nasıl oluşturulacağını kontrol edelim.

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

Bu örnekte aşağıdaki Word şablonu kullanılacaktır:

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

Aspose.Words, CSV veri kaynaklarıyla ilgilenmek için CsvDataSource sınıfını sunar. Aşağıdaki kod örneği, Java’da bir CSV veri kaynağı kullanılarak bir Word belgesinin nasıl oluşturulacağını gösterir.

// Belge nesnesi oluşturun ve DOCX şablonuyla başlatın.
Document doc = new Document("template.docx");
// CSV Yükle
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
// ReportingEngine nesnesi oluşturun.
ReportingEngine engine = new ReportingEngine();
// Rapor oluşturun.
engine.buildReport(doc, dataSource, "persons");
// Word belgesi olarak kaydedin.
doc.save("word.docx");

Çıktı

java'da CSV ile kelime belgesi oluşturma

LINQ Raporlama Motoru hakkında daha fazla bilgi edinin

LINQ Raporlama Motoru, Java’da dinamik olarak tam özellikli Word belgeleri oluşturmak için çok çeşitli etiketleri destekler. Bu makalede bu etiketler ve söz dizimleri hakkında daha fazla bilgi edinebilirsiniz.

Herhangi bir sorunuz veya sorunuz olması durumunda, Aspose.Words Forumu’na gönderi gönderebilirsiniz.

İlgili Makaleler)