Giriş

Kişiselleştirilmiş belgelerin—raporlar, mektuplar ve faturalar gibi—oluşturulmasının otomatikleştirilmesi hem zaman hem de çaba tasarrufu sağlayabilir. C# Mail Merge ile Aspose.Words for .NET, bunu sorunsuz bir şekilde gerçekleştirmenizi sağlar. Bu kılavuz, Aspose.Words Mail Merge Eklentisi’ni kullanarak .NET uygulamalarınızda verimli ve ölçeklenebilir belge oluşturma işlemlerini gerçekleştirme sürecinde size rehberlik edecektir—MS Word veya Office Interop’a ihtiyaç duymadan. Sonunda, rapor otomasyonu için C# mail merge entegrasyonu yapabilme yeteneğine sahip olacaksınız ve raporlama iş akışınızı kolaylaştıracaksınız.


İçindekiler:


Mail Merge Nedir?

Mail Merge, çeşitli kaynaklardan gelen verilerle şablonları doldurarak belgeleri dinamik olarak oluşturmanın güçlü bir metodolojisidir. Aspose.Words ile aşağıdaki gibi görevleri otomatikleştirebilirsiniz:

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

Mail Merge için Veri Kaynakları

Aspose.Words, aşağıdakiler dahil ç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 tabular verileri 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 veri ile 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 bu adımları izleyin:

  1. Belgenizi açın veya MS Word’de yeni bir tane 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ı kutusuna bir isim belirtin 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 Yapma

Şablonunuz hazır olduğunda, belgeleri oluşturmak için mail merge işlemini gerçekleştirebilirsiniz. Hazırladığınız şablonda mail merge yapmak 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. Veri kaynağını parametre olarak geçerek Document.MailMerge.Execute() yöntemini kullanarak mail merge işlemini gerçekleştirin.
  4. Oluşturulan belgeyi Document.Save(String) yöntemi ile kaydedin.

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


Mail Merge Sonrası Word Belgesi

C#'ta Mail Merge Uygulaması

C#’ta XML Veri Kaynağı Kullanarak Mail Merge Yapma

XML dosyaları, verileri saklamak ve aktarmak için yaygın olarak kullanılmaktadır. Aspose.Words for .NET, mail merge işlemleri için XML’i bir veri kaynağı olarak 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 veri ile doldurulacak mail merge şablonu bulunmaktadır.

XML için Mail Merge Şablonu

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

C# ile XML ile Mail Merge Uygulaması

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

Aspose.Words for .NET, mail merge süreci üzerinde gelişmiş kontrol sağlar. MailMerge.FieldMergingCallback özelliği, her birleştirme alanıyla 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ı uygulanmıştır.

C# ile Bölge ile Mail Merge

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

Bölge ile Mail Merge

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.

İçiçe Mail Merge Bölgeleri

Sıklıkla, kaynak veriler ilişkisel formatlarda yapılandırılmıştır. Örneğin, “Orders” bir “OrderDetails” ile bire çok ilişkiye sahip olabilir; bu da 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 bir 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 ilgili OrderSchema.xsd dosyası aşağıdaki gibidir:

<?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ğıdaki kod örneği, C# kullanarak iç içe mail merge işlemini gerçekleştirir.

Mail Merge Sonrası Word Belgesi

Aşağıda, iç içe mail merge işlemi gerçekleştirildikten sonra elde edilen 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ç satır kod 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 başvurun. Aspose.Words for .NET ile başlamak için mevcut geliştirici kılavuzlarını ve GitHub üzerindeki örnek kodları keşfedin. Aspose Eklentisi ayrıca rapor oluşturma için gelişmiş işlevsellikler sunar.

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.

Ayrıca Bakınız