C#'daki şablondan Word oluşturun

Word belgelerinin otomatik olarak oluşturulması, işletmeler tarafından çok sayıda rapor oluşturmak için yaygın olarak kullanılmaktadır. Bazı durumlarda, belgeler sıfırdan oluşturulur. Öte yandan, yer tutucuları doldurarak Word belgeleri oluşturmak için önceden tanımlanmış şablonlar kullanılır. Bu makalede, C#’ta dinamik ve programlı olarak şablonlardan Word belgelerinin nasıl oluşturulacağını göstereceğim. Farklı veri kaynağı türlerinden Word şablonlarını nasıl dolduracağınızı öğreneceksiniz.

Bu makalede kod örnekleriyle birlikte aşağıdaki senaryolar ele alınacaktır:

C# Word Otomasyon API’sı

Aspose.Words for .NET - Sıfırdan veya önceden tanımlanmış Word şablonlarını doldurarak Word belgesi oluşturmanıza olanak tanıyan bir Word otomasyon API’sini kullanacağız. API’nin ikili dosyalarını indirebilir veya aşağıdaki yöntemlerden birini kullanarak yükleyebilirsiniz.

NuGet Paket Yöneticisini Kullanma

Paket Yöneticisi Konsolunu Kullanma

PM> Install-Package Aspose.Words

C# Nesnelerini Kullanarak Şablondan Word Belgesi Oluşturun

Her şeyden önce, C# nesnelerini kullanarak Word şablonunu nasıl dolduracağımızı görelim. Bunun için, belge içeriği olarak aşağıdaki yer tutucularla bir Word belgesi (DOC/DOCX) oluşturacağız:

<<[sender.Name]>> says: "<<[sender.Message]>>."

Burada gönderen, şablonu doldurmak için kullanacağımız aşağıdaki sınıfın nesnesidir.

public class Sender
{
	public string Name { get; set; }
	public string Message { get; set; }

	public Sender (string _name, string _message)
	{
		Name = _name;
		Message = _message;
	}
}

Şimdi, aşağıdaki adımları izleyerek Sender sınıfının şablonundan ve nesnesinden Word belgesini oluşturmak için Aspose.Words’ün raporlama motorunu kullanacağız.

  • Document sınıfından bir nesne oluşturun ve bunu Word şablonunun yolu ile başlatın.
  • Sender sınıfından bir nesne oluşturun ve başlatın.
  • ReportingEngine sınıfını somutlaştırın.
  • Belgenin nesnesini, veri kaynağını ve veri kaynağının adını parametre olarak alan ReportingEngine.BuildReport() kullanarak şablonları doldurun.
  • Oluşturulan Word belgesini Document.Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde şablondan bir Word belgesinin nasıl oluşturulacağını gösterir.

Document doc = new Document("template.docx");
Sender sender = new Sender("LINQ Reporting Engine", "Hello World");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, sender, "sender");
doc.Save("word.docx");

Çıktı

C# dilinde bir XML Veri Kaynağından Word Belgesi Oluşturun

Bir XML veri kaynağından Word belgesi oluşturmak için, aşağıdaki yer tutucularla biraz daha karmaşık bir Word şablonu 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 örnekte kullandığım XML veri kaynağı aşağıda verilmiştir.

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

Bir XML veri kaynağından bir Word belgesi oluşturmak için izlenecek adımlar şunlardır:

  • Document sınıfının bir örneğini oluşturun ve bunu Word şablonunun yolu ile başlatın.
  • XmlDataSource sınıfının bir örneğini oluşturun ve onu XML dosyasının yolu ile başlatın.
  • ReportingEngine sınıfını oluşturun.
  • ReportingEngine.BuildReport() yöntemini, Word şablonunu doldurmak için daha önce kullandığımız şekilde kullanın.
  • Oluşturulan Word belgesini Document.Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde bir XML veri kaynağından Word belgesinin nasıl oluşturulacağını gösterir.

Document doc = new Document("template.docx");
XmlDataSource dataSource = new XmlDataSource("datasource.xml");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "persons");
doc.Save("word.docx");

Çıktı

C# dilinde bir JSON Veri Kaynağından Word Belgesi oluşturun

Şimdi bir JSON veri kaynağı kullanarak bir Word belgesinin nasıl oluşturulacağını görelim. Bu örnekte, yöneticileri tarafından gruplandırılmış müşterilerin bir listesini oluşturacağız. Aşağıdaki, bu durumda Word şablonu olacaktır:

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

Aşağıdakiler, şablonu doldurmak için kullanacağımız JSON veri kaynağı olacaktı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
           }
       ]
   },
]

JSON’dan Word belgesi oluşturmak için, JSON veri kaynağını yüklemek ve kullanmak için JsonDataSource sınıfını kullanacağız ve geri kalan adımlar aynı kalacak. Aşağıdaki kod örneği, C# dilinde JSON kullanılarak şablondan bir Word belgesinin nasıl oluşturulacağını gösterir.

Document doc = new Document("template.docx");
JsonDataSource dataSource = new JsonDataSource("datasource.json");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "managers");
doc.Save("word.docx");

Çıktı

C# ile CSV Veri Kaynağından Word Belgesi Oluşturun

CSV’den Word belgesi oluşturmak için aşağıdaki Word şablonunu kullanacağız:

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

Şablon, aşağıdaki CSV verileriyle doldurulacaktır:

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

Şimdi C# koduna gelelim. CSV verilerini yüklemek için CsvDataSource sınıfını kullanacağımız tek değişiklik dışında tüm adımlar burada da aynı kalacak. Aşağıdaki kod örneği, bir CSV veri kaynağından Word belgesinin nasıl oluşturulacağını gösterir.

Document doc = new Document("template.docx");
CsvDataSource dataSource = new CsvDataSource("datasource.csv");
ReportingEngine engine = new ReportingEngine();
engine.BuildReport(doc, dataSource, "persons");
doc.Save("word.docx");

Çıktı

Aspose.Words for .NET’i Ücretsiz Deneyin

Aspose.Words for .NET’i ücretsiz geçici lisans kullanarak deneyebilirsiniz.

Çözüm

Bu makalede, C# kullanarak şablonlardan Word belgeleri oluşturmayı öğrendiniz. Ayrıca, Word belgeleri oluşturmak için nesneleri, XML, JSON ve CSV veri kaynaklarını nasıl kullanacağınızı gördünüz. Belgeleri kullanarak C# Word otomasyon API’si hakkında daha fazlasını keşfedebilirsiniz. Ayrıca, [forumumuz] aracılığıyla 12 bizimle iletişime geçebilirsiniz.

Ayrıca bakınız