Hasilkan Dokumen MS Word dari Templat Gabungan Surat dengan Python

Penggabungan surat MS Word adalah fitur populer yang memungkinkan Anda membuat surat, faktur, amplop, laporan, dll. Menggunakan gabungan surat, Anda dapat membuat templat dan mengisinya dengan data. Akibatnya, dokumen dibuat untuk setiap entri di sumber data. Untuk mengotomatiskan fitur ini, artikel ini membahas cara melakukan gabungan surat MS Word menggunakan Python. Anda akan belajar cara membuat template gabungan surat dari awal dan mengisinya secara terprogram.

Perpustakaan Python untuk Mengotomatiskan Gabungan Surat MS Word

Untuk mengotomatisasi gabungan surat MS Word, kami akan menggunakan Aspose.Words for Python. Ini adalah perpustakaan yang kuat yang memungkinkan Anda membuat dan memanipulasi dokumen Word. Selain itu, ini memungkinkan Anda untuk membuat template gabungan surat dan mengisinya dengan mulus. Aspose.Words for Python dapat diinstal dari PyPI menggunakan perintah pip berikut.

pip install aspose-words 

Buat Templat Gabungan Surat dengan Python

Templat gabungan surat berisi bidang gabungan yang diisi dengan nilai di sumber data. Templat dapat berupa format DOT, DOTX, DOC, atau DOCX. Untuk membuat template gabungan surat, Anda dapat menggunakan MS Word. Namun, untuk mengotomatiskan prosedur ini dengan Python, Anda dapat mengikuti langkah-langkah di bawah ini.

  • Buat objek kelas DocumentBuilder.
  • Sisipkan teks menggunakan metode DocumentBuilder.inserttextinput().
  • Sisipkan kolom gabungan menggunakan metode DocumentBuilder.insertfield().
  • Ulangi memasukkan teks dan menggabungkan bidang sesuai kebutuhan.
  • Simpan template sebagai file menggunakan metode DocumentBuilder.document.save().

Contoh kode berikut menunjukkan cara membuat template gabungan surat DOCX menggunakan Python.

import aspose.words as aw

# Buat pembuat dokumen
builder = aw.DocumentBuilder()

# Sisipkan bidang input teks, nama unik bidang ini adalah "Halo", parameter lainnya ditentukan
# jenis FormField apa, format teks, hasil bidang dan panjang teks maksimum (0 = tidak ada batas)
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Hello ", 0)
builder.insert_field("MERGEFIELD CustomerFirstName \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, "", " ", 0)
builder.insert_field("MERGEFIELD CustomerLastName \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, "", " , ", 0)

# Masukkan jeda paragraf ke dalam dokumen
builder.insert_paragraph()

# Sisipkan badan surat
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Thanks for purchasing our ", 0)
builder.insert_field("MERGEFIELD ProductName \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ", please download your Invoice at ", 0)
builder.insert_field("MERGEFIELD InvoiceURL \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ". If you have any questions please call ", 0)
builder.insert_field("MERGEFIELD Supportphone \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ", or email us at ", 0)
builder.insert_field("MERGEFIELD SupportEmail \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ".", 0)

builder.insert_paragraph()

# Sisipkan akhiran surat
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Best regards,", 0)
builder.insert_break(aw.BreakType.LINE_BREAK)
builder.insert_field("MERGEFIELD EmployeeFullname \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, ",", " ", 0)
builder.insert_field("MERGEFIELD EmployeeDepartment \\* MERGEFORMAT")

# Simpan template sebagai file DOCX
builder.document.save("mail_merge_template.docx")

Berikut screenshot dari template yang baru saja kita buat menggunakan contoh kode di atas.

membuat template gabungan surat dengan python

Hasilkan Dokumen Word menggunakan Mail Merge Template dengan Python

Sekarang setelah Anda membuat template gabungan surat, saatnya mengisi bidangnya dengan nilai. Berikut ini adalah langkah-langkah untuk membuat dokumen Word dari template gabungan surat dengan Python.

  • Muat template gabungan surat menggunakan kelas Document.
  • Panggil metode Document.mailmerge.execute() dan teruskan data dalam bentuk array.
  • Simpan dokumen yang dihasilkan menggunakan metode Document.save().

Contoh kode berikut menunjukkan cara membuat dokumen Word dari template gabungan surat.

import aspose.words as aw

# Muat template gabungan surat
doc = aw.Document("mail_merge_template.docx")

# Isi bidang dalam dokumen dengan data
doc.mail_merge.execute(["CustomerFirstName", "CustomerLastName", "ProductName", "InvoiceURL", "SupportPhone", "SupportEmail", "EmployeeFullname", "EmployeeDepartment"],
    ["John", "Doe", "Aspose.Words", "aspose.com", "111-222-333", "support@aspose.com", "Jimmy", "Sales"]
    )

# Simpan dokumen
doc.save("mail_merge_populated.docx")

Tangkapan layar berikut menunjukkan dokumen Word yang telah kami hasilkan dari template gabungan surat.

menghasilkan dokumen kata dari templat gabungan surat dengan python

Dapatkan Lisensi Gratis

Anda dapat menggunakan Aspose.Words for Python tanpa batasan evaluasi dengan mendapatkan lisensi sementara gratis.

Kesimpulan

Penggabungan surat MS Word adalah fitur yang berguna untuk menghasilkan dokumen Word dari templat yang telah ditentukan sebelumnya. Untuk mengotomatiskan gabungan surat, artikel ini membahas cara membuat templat gabungan surat dan mengisinya dengan data di Python. Anda juga dapat menjelajahi fitur lain dari Aspose.Words for Python menggunakan dokumentasi. Jika Anda memiliki pertanyaan, jangan ragu untuk mempostingnya ke forum kami.

Lihat juga