Pendahuluan

Hemat waktu dan usaha dengan mengotomatiskan pembuatan dokumen pribadi seperti laporan, surat, dan faktur dengan C# Mail Merge yang didukung oleh Aspose.Words untuk .NET. Panduan ini menjelaskan cara memanfaatkan Plugin Mail Merge Aspose.Words untuk melakukan pembuatan dokumen yang efisien dan skalabel dalam aplikasi .NET Anda—tanpa memerlukan MS Word atau Office Interop. Anda akan belajar untuk mengintegrasikan C# mail merge untuk otomatisasi laporan, memungkinkan Anda menyederhanakan alur kerja pelaporan Anda.


Isi:


Apa itu Mail Merge?

Mail Merge adalah metode untuk secara dinamis menghasilkan dokumen dengan mengisi template dengan data dari berbagai sumber. Dengan Aspose.Words, Anda dapat dengan mudah mengotomatiskan tugas seperti:

  • Menghasilkan surat dan faktur dengan detail yang dipersonalisasi.
  • Membuat laporan massal menggunakan data dari format terstruktur seperti XML, JSON, atau basis data, memungkinkan pembuatan laporan dinamis dengan C# dan Aspose.Words.

Sumber Data untuk Mail Merge

Aspose.Words mendukung berbagai sumber data:

  • Objek: Mengisi template menggunakan instance kelas.
  • XML: Memuat data terstruktur untuk field dinamis.
  • JSON: Mudah terintegrasi dengan API modern.
  • CSV: Memanfaatkan data tabel untuk pembuatan dokumen massal.
  • DataTable/DataSet: Memanfaatkan ADO.NET untuk integrasi basis data.

Menyiapkan Template untuk Mail Merge

Template mail merge adalah dokumen yang mengandung field merge yang akan diisi dengan data dari sumber data yang ditentukan saat eksekusi. Template dapat dalam format DOC atau DOCX; tidak memerlukan gaya template tertentu. Ikuti langkah-langkah berikut untuk membuat template mail merge:

  1. Buka dokumen Anda atau buat yang baru di MS Word.
  2. Tempatkan kursor di tempat Anda ingin menyisipkan field merge.
  3. Dari menu Insert, pilih opsi Field.
  4. Dari daftar Field names, pilih MergeField.
  5. Tentukan nama untuk field merge di kotak Field name dan klik OK.
  6. Simpan dokumen tersebut.

Screenshot berikut menggambarkan sebuah template contoh.

Template Mail Merge

API Mail Merge .NET - Instalasi

Anda dapat menginstal Aspose.Words untuk .NET melalui berbagai metode:

Melakukan Mail Merge dalam Dokumen Word menggunakan C#

Setelah template Anda siap, lakukan mail merge untuk menghasilkan dokumen. Berikut adalah langkah-langkah untuk melakukan mail merge pada template yang telah disiapkan:

  1. Muat dokumen template menggunakan kelas Document.
  2. Tetapkan opsi mail merge yang diperlukan, seperti Document.MailMerge.TrimWhitespaces.
  3. Lakukan mail merge menggunakan metode Document.MailMerge.Execute(), dengan memasukkan sumber data sebagai parameter.
  4. Simpan dokumen yang dihasilkan menggunakan metode Document.Save(String).

Berikut adalah contoh kode yang menunjukkan cara mengotomatiskan pembuatan laporan dalam C# menggunakan array nilai:


Dokumen Word setelah Mail Merge

Eksekusi Mail Merge di C#

Melakukan Mail Merge menggunakan Sumber Data XML dalam C#

File XML sering digunakan untuk menyimpan dan mentransfer data. Aspose.Words untuk .NET juga mendukung XML sebagai sumber data untuk operasi mail merge. Cukup baca XML ke dalam objek DataSet dan eksekusi mail merge. Berikut adalah file XML contoh untuk kasus penggunaan kita.

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

Contoh kode berikut mengambil data dari sumber data XML dan menjalankan mail merge menggunakan C#.

Berikut adalah template mail merge yang akan diisi dengan data dari file XML.

Template Mail Merge untuk XML

Gambar ini menunjukkan halaman pertama dari dokumen Word yang dihasilkan setelah menjalankan mail merge.

Eksekusi Mail Merge dengan XML di C#

Format Kustom Field Merge

Aspose.Words untuk .NET menyediakan kontrol yang lebih baik atas proses mail merge. Properti MailMerge.FieldMergingCallback memungkinkan Anda untuk mengonfiguresi perilaku mail merge saat setiap field merge ditemukan. Mengimplementasikan metode IFieldMergingCallback.FieldMerging dan IFieldMergingCallback.ImageFieldMerging memungkinkan kustomisasi operasi mail merge.

Berikut adalah contoh kode yang menunjukkan cara menerapkan format kustom selama mail merge melalui template contoh yang diberikan:

Berikut ini adalah implementasi kelas HandleMergeFieldAlternatingRows.

Mail Merge dengan Wilayah menggunakan C#

Dalam beberapa kasus, Anda mungkin perlu mengisi dan mengulangi wilayah tertentu dalam dokumen Word. Untuk kasus seperti itu, gunakan mail merge dengan wilayah. Untuk membuat wilayah, tentukan baik awal dan akhir wilayah; mail merge kemudian akan mengulangi wilayah ini untuk setiap catatan dalam sumber data. Contoh template di bawah ini berisi dua wilayah—Orders dan OrderDetails—menggunakan field merge «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails», dan «TableEnd:OrderDetails».

Mail Merge dengan Wilayah

Berikut adalah contoh kode yang mengeksekusi mail merge berdasarkan wilayah untuk template yang disebutkan sebelumnya.

Metode berikut menunjukkan bagaimana membaca data dari basis data.

Wilayah Nested Mail Merge

Seringkali, data dari sumber terstruktur dalam format relasional. Sebagai contoh, “Orders” mungkin memiliki hubungan satu-ke-banyak dengan “OrderDetails,” yang menyimpan catatan item dalam pesanan. Dalam skenario seperti itu, gunakan nested mail merge. Berikut adalah template faktur yang sesuai dengan skenario ini.

Template Mail Merge dengan Wilayah

Berikut adalah sumber data XML untuk contoh nested mail merge kita.

<?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>Pizza Ayam BBQ</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>Coke 1.5 Liter</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>Pizza Hawaii</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>Gorengan</Name>
            <Price>1.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>2.00</ItemTotal>
        </Item>
    </Order>
</Orders>

File OrderSchema.xsd yang sesuai untuk XML ini adalah:

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

Contoh kode berikut menjalankan nested mail merge menggunakan C#.

Dokumen Word setelah Mail Merge

Berikut adalah halaman pertama dokumen Word yang dihasilkan setelah menjalankan nested mail merge.

Dokumen Word setelah Mail Merge

Kesimpulan

Aspose.Words untuk .NET adalah API mail merge yang komprehensif yang menyediakan fitur standar dan lanjutan yang cocok untuk aplikasi .NET. Dengan hanya beberapa baris kode, Anda dapat mengembangkan laporan sederhana atau kompleks dari berbagai sumber data dengan mudah. Untuk panduan tentang praktik terbaik pembuatan laporan otomatis .NET, konsultasikan dokumentasi. Untuk memulai dengan Aspose.Words untuk .NET, jelajahi panduan pengembang dan contoh kode yang tersedia di GitHub. Plugin Aspose juga menawarkan fungsionalitas tingkat lanjut untuk pembuatan laporan.

Cobalah Aspose.Words untuk .NET Secara Gratis

Anda dapat memperoleh lisensi sementara gratis untuk mencoba Aspose.Words untuk .NET tanpa batasan. Dapatkan lisensi sementara Anda sekarang.

Lihat Juga