title: “C# Mail Merge ile Rapor Otomasyonu” author: “Aspose” date: 2023-10-01 tags: [C#, Mail Merge, Aspose.Words]

Kişiselleştirilmiş belgelerin - raporlar, mektuplar ve fatura gibi - otomatik olarak oluşturulması, iş akışınızdaki verimliliği önemli ölçüde artırabilir. Aspose.Words for .NET tarafından desteklenen C# Mail Merge ile bunu sorunsuz bir şekilde gerçekleştirebilirsiniz. Bu kılavuz, Aspose.Words Mail Merge Eklentisi kullanarak .NET uygulamalarınızda verimli ve ölçeklenebilir belge oluşturma işlemini gerçekleştirmenizi sağlayacaktır - MS Word veya Office Interop’a ihtiyaç duymadan. Bu kılavuzun sonunda, C# mail merge ile rapor otomasyonu entegrasyonu yapmaya ve raporlama iş akışınızı düzene sokmaya hazır olacaksınız.


İçindekiler


Mail Merge Nedir?

Mail Merge, belgeleri dinamik olarak oluşturmak için çeşitli kaynaklardan veri ile şablonları dolduran güçlü bir metodolojidir. Aspose.Words ile aşağıdaki görevleri otomatikleştirebilirsiniz:

  • Kişiselleştirilmiş mektuplar ve faturalar oluşturmak.
  • C# ve Aspose.Words ile dinamik rapor oluşturma imkanı sağlayan XML, JSON veya veritabanları gibi yapılandırılmış formatlar kullanarak toplu raporlar oluşturmak.

Mail Merge için Veri Kaynakları

Aspose.Words, aşağıdakiler de dahil olmak üzere çeşitli veri kaynaklarını destekler:

  • Nesneler: Sınıf örneklerini kullanarak şablonları doldurun.
  • XML: Dinamik alanlar için yapılandırılmış verileri yükleyin.
  • JSON: Modern API’lerle kolayca entegre olun.
  • CSV: Toplu belge oluşturma için tablo verilerini kullanın.
  • DataTable/DataSet: Veritabanı entegrasyonu için ADO.NET’i kullanın.

Mail Merge için Şablon Hazırlama

Mail merge şablonu, yürütme sırasında belirtilen veri kaynağınızdan verilerle doldurulacak birleştirme alanlarını içeren belgedir. Şablon DOC veya DOCX formatında olabilir ve belirli bir stil gerektirmez. Bir mail merge şablonu oluşturmak için şu adımları izleyin:

  1. Belgenizi açın veya MS Word’de yeni bir belge oluşturun.
  2. Birleştirme alanını eklemek istediğiniz yere imleci yerleştirin.
  3. Ekle menüsünden Alan seçeneğini seçin.
  4. Alan adları listesinden MergeField‘i seçin.
  5. Alan adı kutusunda bir ad belirleyin ve Tamam‘a tıklayın.
  6. Belgeyi kaydedin.

Aşağıdaki ekran görüntüsü bir örnek şablon belgesini göstermektedir.

Mail Merge Şablonu

.NET Mail Merge API - Kurulum

Aspose.Words for .NET‘i çeşitli yöntemlerle kurabilirsiniz:

C# Kullanarak Word Belgesinde Mail Merge Uygulama

Şablonunuz hazır olduğunda, belgeleri oluşturmak için mail merge işlemini gerçekleştirebilirsiniz. Hazırladığınız şablonda mail merge uygulamak için şu adımları izleyin:

  1. Document sınıfını kullanarak şablon belgesini yükleyin.
  2. Document.MailMerge.TrimWhitespaces gibi gerekli mail merge seçeneklerini ayarlayın.
  3. Document.MailMerge.Execute() yöntemini kullanarak mail merge işlemini gerçekleştirin ve veri kaynağını bir parametre olarak geçin.
  4. Oluşturulan belgeyi Document.Save(String) yöntemiyle kaydedin.

Aşağıda, C# kullanarak bir değerler dizisi ile rapor oluşturmayı otomatikleştirme yöntemini gösteren bir kod örneği bulunmaktadır:


Mail Merge Sonrası Word Belgesi

C# ile Mail Merge Uygulama

C# Kullanarak XML Veri Kaynağı ile Mail Merge Uygulama

XML dosyaları, veri depolamak ve aktarmak için yaygın olarak kullanılmaktadır. Aspose.Words for .NET, mail merge işlemleri için veri kaynağı olarak XML’i destekler. XML’i bir DataSet nesnesine okuyun ve mail merge işlemini gerçekleştirin. Aşağıda kullanım durumumuz için bir örnek XML dosyası bulunmaktadır.

<customers>
    <customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
    <customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
    <customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
    <customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>

Aşağıdaki kod örneği, bir XML veri kaynağından veri alır ve C# kullanarak mail merge işlemini gerçekleştirir.

Aşağıda, XML dosyasından verilerle doldurulacak mail merge şablonu bulunmaktadır.

XML için Mail Merge Şablonu

Bu resim, mail merge işlemi gerçekleştirildikten sonra elde edilen sonuç Word belgesinin ilk sayfasını temsil etmektedir.

C# ile XML ile Mail Merge Uygulama

Birleştirme Alanlarının Özel Biçimlendirilmesi

Aspose.Words for .NET, mail merge süreci üzerinde geliştirilmiş kontrol sağlar. MailMerge.FieldMergingCallback özelliği, her birleştirme alanı ile karşılaşıldığında mail merge davranışını yapılandırmanıza olanak tanır. IFieldMergingCallback.FieldMerging ve IFieldMergingCallback.ImageFieldMerging yöntemlerini uygulamak, mail merge işleminin özelleştirilmesini sağlar.

Aşağıda, sağlanan örnek şablon aracılığıyla mail merge sırasında özel biçimlendirme uygulamanın nasıl yapılacağını gösteren bir kod örneği bulunmaktadır:

Aşağıda, HandleMergeFieldAlternatingRows sınıfı uygulanmaktadır.

C# Kullanarak Bölgeler ile Mail Merge

Bazı durumlarda, Word belgesinde belirli bir bölgeyi doldurmanız ve tekrarlamanız gerekebilir. Bu tür senaryolar için, bölgeler ile mail merge kullanın. Bir bölge oluşturmak için, bölgenin başlangıcını ve sonunu belirtin; mail merge bu bölgeyi veri kaynağındaki her kayıt için tekrarlayacaktır. Aşağıdaki şablon örneği, «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» ve «TableEnd:OrderDetails» birleştirme alanlarını kullanarak iki bölge - Siparişler ve Sipariş Detayları - içermektedir.

Bölgeler ile Mail Merge Şablonu

Aşağıda, daha önce bahsedilen şablon için bölgeler temelinde mail merge gerçekleştiren bir kod örneği bulunmaktadır.

Aşağıdaki yöntemler, bir veritabanından veri okumanın nasıl yapılacağını göstermektedir.

İç İçe Mail Merge

Çoğu zaman, kaynak veriler ilişkilendirilmiş formatlarda yapılandırılmıştır. Örneğin, “Siparişler” “Sipariş Detayları” ile birden bire çok ilişkiye sahip olabilir; bu, bir siparişteki öğelerin kayıtlarını tutar. Bu tür senaryolar için, iç içe mail merge kullanın. Aşağıda, bu senaryo için uygun bir fatura şablonu bulunmaktadır.

Bölgeler ile Mail Merge Şablonu

Aşağıda, iç içe mail merge örneğimiz için XML veri kaynağı bulunmaktadır.

<?xml version="1.0" encoding ="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
    <Order>
        <Number>23</Number>
        <Address>Nelson Street</Address>
        <Suburb>Howick</Suburb>
        <City>Auckland</City>
        <Phonenumber>543 1234</Phonenumber>
        <Date>03/01/2010</Date>
        <Total>14.00</Total>
        <Item>
            <Name>BBQ Chicken Pizza</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>1.5 Litre Coke</Name>
            <Price>4.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>8.00</ItemTotal>
        </Item>
    </Order>
    <Order>
        <Number>10</Number>
        <Address>Parkville Avenue</Address>
        <Suburb>Pakuranga</Suburb>
        <City>Auckland</City>
        <Phonenumber>548 7342</Phonenumber>
        <Date>05/03/2010</Date>
        <Total>6.00</Total>
        <Item>
            <Name>Hawaiian Pizza</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>Fries</Name>
            <Price>1.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>2.00</ItemTotal>
        </Item>
    </Order>
</Orders>

Bu XML için karşılık gelen OrderSchema.xsd dosyası:

<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Orders">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Order">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Number"/>
                            <xs:element name="Address"/>
                            <xs:element name="Suburb"/>
                            <xs:element name="City"/>
                            <xs:element name="Phonenumber"/>
                            <xs:element name="Date"/>
                            <xs:element name="Total"/>
                            <xs:element name="Item">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Name"/>
                                        <xs:element name="Price"/>
                                        <xs:element name="Quantity"/>
                                        <xs:element name="ItemTotal"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Aşağıda, C# kullanarak iç içe mail merge işlemini gerçekleştiren bir kod örneği bulunmaktadır.

Mail Merge Sonrası Word Belgesi

Aşağıda, iç içe mail merge işlemi gerçekleştirildikten sonra elde edilen sonuç Word belgesinin ilk sayfası bulunmaktadır.

Mail Merge Sonrası Word Belgesi

Sonuç

Aspose.Words for .NET, .NET uygulamaları için uygun standart ve genişletilmiş özellikler sunan kapsamlı bir mail merge API’sidir. Sadece birkaç kod satırı ile, çeşitli veri kaynaklarından basit veya karmaşık raporlar geliştirebilirsiniz. .NET otomatik rapor oluşturma en iyi uygulamaları hakkında rehberlik için belgelere göz atın. Aspose.Words for .NET ile başlamak için mevcut geliştirici kılavuzlarını ve GitHub üzerindeki örnek kodları keşfedin. Aspose Eklentisi de rapor oluşturma için gelişmiş işlevsellikler sunmaktadır.

Aspose.Words for .NET’i Ücretsiz Deneyin

Aspose.Words for .NET’i sınırsız olarak denemek için ücretsiz geçici bir lisans alabilirsiniz. Geçici lisansınızı şimdi alın.