Giriş

C# Mail Merge kullanarak kişisel belgelerin, raporların, mektupların ve faturaların otomatik olarak oluşturulmasıyla zaman ve çabanızı tasarruf edin; bu, Aspose.Words for .NET ile desteklenmektedir. Bu kılavuz, Aspose.Words Mail Merge Eklentisi kullanarak .NET uygulamalarınızda hızlı ve ölçeklenebilir belge oluşturma işlemlerini nasıl gerçekleştireceğinizi açıklamaktadır—MS Word veya Office Interop’a ihtiyaç duymadan. Rapor otomasyonu için C# mail merge entegrasyonu ile raporlama iş akışınızı nasıl kolaylaştıracağınızı öğreneceksiniz.


İçindekiler:


Mail Merge Nedir?

Mail Merge, belgeleri dinamik olarak oluşturma metodolojisidir; bu, şablonları çeşitli kaynaklardan gelen verilerle dolduran süreçtir. Aspose.Words ile şu görevleri sorunsuz bir şekilde otomatik hale getirebilirsiniz:

  • Kişiselleştirilmiş detaylarla mektuplar ve faturalar oluşturma.
  • XML, JSON veya veritabanları gibi yapılandırılmış formatlardan veriyle toplu raporlar oluşturma; böylece C# ve Aspose.Words ile dinamik rapor oluşturma imkanı sağlar.

Mail Merge için Veri Kaynakları

Aspose.Words, çeşitli veri kaynaklarını desteklemektedir:

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

Mail Merge için Şablon Hazırlama

Mail merge şablonu, yürütülmesi sırasında belirttiğiniz veri kaynağından doldurulacak birleştirme alanlarını içeren belgedir. Şablon DOC veya DOCX formatında olabilir; özellikle belirli bir şablon stiline ihtiyacı yoktur. Bir mail merge şablonu oluşturmak için şu adımları izleyin:

  1. MS Word’de mevcut belgenizi açın veya 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 seçeneğini seçin.
  5. Alan adı kutusunda bir isim belirtin ve Tamam butonuna 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 uygulayın. Hazırlanan şablonunuzda mail merge uygulamak için adımlar:

  1. Document sınıfını kullanarak şablon belgesini yükleyin.
  2. Gerekli Mail Merge seçeneklerini ayarlayın, örneğin Document.MailMerge.TrimWhitespaces.
  3. Document.MailMerge.Execute() yöntemini kullanarak mail merge’i uygulayın ve veri kaynağını parametre olarak geçin.
  4. Oluşturulan belgeyi Document.Save(String) yöntemi ile kaydedin.

İşte C# kullanarak bir değerler dizisi ile rapor oluşturmayı otomatikleştirmenin nasıl yapılacağını gösteren bir kod örneği:


Mail Merge’den Sonra Word Belgesi

C# ile Mail Merge Uygulama

XML Veri Kaynağı kullanarak Mail Merge Uygulama

XML dosyaları, verileri depolamak ve iletmek için yaygın olarak kullanılır. Aspose.Words for .NET, mail merge işlemleri için XML’yi veri kaynağı olarak destekler. XML’i bir DataSet nesnesine okuyun ve mail merge’i uygulayın. İşte kullanacağımız bir örnek XML dosyası.

<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, XML veri kaynağından veri almakta ve C# kullanarak mail merge’i uygulamaktadır.

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

XML için Mail Merge Şablonu

Bu resim, mail merge uygulandıktan 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ş bir kontrol sağlar. MailMerge.FieldMergingCallback özelliği, her birleştirme alanı karşılaşıldığında mail merge davranışını yapılandırmanıza izin verir. IFieldMergingCallback.FieldMerging ve IFieldMergingCallback.ImageFieldMerging yöntemlerini uygulayarak mail merge işleminin özelleştirilmesini sağlarsınız.

Aşağıda, sağlanan örnek şablon üzerinden mail merge sırasında özel biçimlendirme uygulamanızı gösteren bir kod örneği bulunmaktadır:

Aşağıda HandleMergeFieldAlternatingRows sınıfının uygulaması bulunmaktadır.

C# ile Bölümlü Mail Merge

Bazı durumlarda, Word belgesinde belirli bir bölgeyi doldurup tekrar etmeniz gerekebilir. Böyle durumlarda, bölümlü mail merge’i kullanın. Bir bölge oluşturmak için, hem bölgenin başlangıcını hem de sonunu belirtin; mail merge ardından veri kaynağındaki her kayıt için bu bölgeyi tekrar edecektir. Aşağıdaki şablon örneği, «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» ve «TableEnd:OrderDetails» birleştirme alanlarını kullanarak iki bölgeyi içermektedir—Orders ve OrderDetails.

Bölümlü Mail Merge

Aşağıdaki kod örneği, daha önce belirtilen şablon için bölümler temelinde mail merge uygulamaktadır.

Aşağıdaki yöntemler, bir veritabanından veri okumayı göstermektedir.

İç İçe Mail Merge Bölgeleri

Sıklıkla, kaynak verileri ilişkisel formatlarda yapılandırılmıştır. Örneğin, “Orders” ile “OrderDetails” arasında birden bire çok ilişkisi vardır; bu, bir sipariş içindeki öğelerin kayıtlarını tutar. Böyle senaryolarda, iç içe mail merge’i 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 karşılık gelen OrderSchema.xsd dosyası şu şekildedir:

<?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ştirmektedir.

Mail Merge’den Sonra Word Belgesi

Mail merge uygulandıktan sonra elde edilen Word belgesinin ilk sayfası aşağıdadır.

Mail Merge'den Sonra Word Belgesi

Sonuç

Aspose.Words for .NET, .NET uygulamaları için uygun standart ve genişletilmiş özellikler sağlayan 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ı için kılavuzluk almak amacıyla belgelere başvurun. Aspose.Words for .NET ile başlamak için mevcut geliştirici kılavuzlarını ve GitHub‘daki örnek kodları keşfedin. Aspose Eklentisi ayrıca rapor oluşturma için gelişmiş işlevsellik sunmaktadır.

Aspose.Words for .NET’i Ücretsiz Deneyin

Sınırlama olmaksızın Aspose.Words for .NET’i denemek için ücretsiz geçici lisans alabilirsiniz. Ücretsiz geçici lisansınızı alın.

Ayrıca Bakınız