Python'da Adres Mektup Birleştirme Şablonundan MS Word Belgeleri Oluşturun

MS Word adres mektup birleştirme, mektuplar, faturalar, zarflar, raporlar vb. oluşturmanıza olanak sağlayan popüler bir özelliktir. Adres mektup birleştirmeyi kullanarak bir şablon oluşturabilir ve onu verilerle doldurabilirsiniz. Sonuç olarak, veri kaynağındaki her giriş için bir belge oluşturulur. Bu özelliği otomatikleştirmek için bu makale, Python kullanılarak MS Word adres mektup birleştirmenin nasıl gerçekleştirileceğini kapsar. Adres-mektup birleştirme şablonunu sıfırdan nasıl oluşturacağınızı ve onu programlı olarak nasıl dolduracağınızı öğreneceksiniz.

MS Word Adres Mektup Birleştirmeyi Otomatikleştirmek için Python Kitaplığı

MS Word adres mektup birleştirmeyi otomatikleştirmek için Aspose.Words for Python kullanacağız. Word belgeleri oluşturmanıza ve değiştirmenize izin veren güçlü bir kitaplıktır. Ayrıca, adres-mektup birleştirme şablonları oluşturmanıza ve bunları sorunsuz bir şekilde doldurmanıza olanak tanır. Aspose.Words for Python, aşağıdaki pip komutu kullanılarak PyPI‘den kurulabilir.

pip install aspose-words 

Python’da Adres Mektup Birleştirme Şablonu Oluşturma

Adres mektup birleştirme şablonu, veri kaynağındaki değerlerle doldurulmuş birleştirme alanları içerir. Şablon DOT, DOTX, DOC veya DOCX biçiminde olabilir. Adres mektup birleştirme şablonu oluşturmak için MS Word’ü kullanabilirsiniz. Ancak Python’da bu işlemi otomatik hale getirmek için aşağıdaki adımları takip edebilirsiniz.

  • DocumentBuilder sınıfından bir nesne oluşturun.
  • DocumentBuilder.inserttextinput() yöntemini kullanarak metin ekleyin.
  • DocumentBuilder.insertfield() yöntemini kullanarak birleştirme alanını ekleyin.
  • Metin eklemeyi tekrarlayın ve alanları gerektiği gibi birleştirin.
  • DocumentBuilder.document.save() yöntemini kullanarak şablonu bir dosya olarak kaydedin.

Aşağıdaki kod örneği, Python kullanılarak bir DOCX adres mektup birleştirme şablonunun nasıl oluşturulacağını gösterir.

import aspose.words as aw

# Bir belge oluşturucu oluşturun
builder = aw.DocumentBuilder()

# Bir metin giriş alanı ekleyin, bu alanın benzersiz adı "Merhaba"dır, diğer parametreler tanımlar
# ne tür FormField olduğu, metnin formatı, alan sonucu ve maksimum metin uzunluğu (0 = sınır yok)
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)

# Belgeye paragraf sonu ekleme
builder.insert_paragraph()

# Posta gövdesi ekle
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()

# Posta bitişi ekle
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")

# Şablonu bir DOCX dosyası olarak kaydedin
builder.document.save("mail_merge_template.docx")

Yukarıdaki kod örneğini kullanarak az önce oluşturduğumuz şablonun ekran görüntüsü aşağıdadır.

python'da adres-mektup birleştirme şablonu oluşturma

Python’da Adres Mektup Birleştirme Şablonunu Kullanarak Word Belgesi Oluşturun

Artık adres mektup birleştirme şablonunu oluşturduğunuzda, alanlarını değerlerle doldurmanın zamanı geldi. Aşağıda, Python’da bir adres-mektup birleştirme şablonundan bir Word belgesi oluşturma adımları yer almaktadır.

  • Document sınıfını kullanarak adres mektup birleştirme şablonunu yükleyin.
  • Document.mailmerge.execute() yöntemini çağırın ve verileri bir dizi biçiminde iletin.
  • Oluşturulan belgeyi Document.save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, adres mektup birleştirme şablonundan bir Word belgesinin nasıl oluşturulacağını gösterir.

import aspose.words as aw

# Adres mektup birleştirme şablonunu yükleyin
doc = aw.Document("mail_merge_template.docx")

# Belgedeki alanları verilerle doldurun
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"]
    )

# belgeyi kaydet
doc.save("mail_merge_populated.docx")

Aşağıdaki ekran görüntüsü, adres mektup birleştirme şablonundan oluşturduğumuz Word belgesini göstermektedir.

python'da adres mektup birleştirme şablonundan kelime belgesi oluşturun

Ücretsiz Lisans Alın

Aspose.Words for Python’u ücretsiz geçici lisans alarak değerlendirme sınırlamaları olmaksızın kullanabilirsiniz.

Çözüm

MS Word adres mektup birleştirme, önceden tanımlanmış şablonlardan Word belgeleri oluşturmak için kullanışlı bir özelliktir. Adres mektup birleştirmeyi otomatikleştirmek için bu makale, adres mektup birleştirme şablonlarının nasıl oluşturulacağını ve Python’da verilerle nasıl doldurulacağını ele aldı. Belgeleri kullanarak Aspose.Words for Python’un diğer özelliklerini de keşfedebilirsiniz. Herhangi bir sorunuz olursa forumumuza göndermekten çekinmeyin.

Ayrıca bakınız