Python의 편지 병합 템플릿에서 MS Word 문서 생성

MS Word 편지 병합은 편지, 송장, 봉투, 보고서 등을 만들 수 있는 인기 있는 기능입니다. 편지 병합을 사용하면 템플릿을 만들고 데이터를 채울 수 있습니다. 결과적으로 데이터 소스의 각 항목에 대해 문서가 생성됩니다. 이 기능을 자동화하기 위해 이 문서에서는 Python을 사용하여 MS Word 편지 병합을 수행하는 방법을 다룹니다. 편지 병합 템플릿을 처음부터 만들고 프로그래밍 방식으로 채우는 방법을 배웁니다.

MS Word 편지 병합을 자동화하는 Python 라이브러리

MS Word 편지 병합을 자동화하기 위해 Aspose.Words for Python을 사용합니다. Word 문서를 만들고 조작할 수 있는 강력한 라이브러리입니다. 또한 편지 병합 템플릿을 만들고 원활하게 채울 수 있습니다. Aspose.Words for Python은 다음 pip 명령을 사용하여 PyPI에서 설치할 수 있습니다.

pip install aspose-words 

Python에서 편지 병합 템플릿 만들기

편지 병합 템플릿에는 데이터 원본의 값으로 채워진 병합 필드가 있습니다. 템플릿은 DOT, DOTX, DOC 또는 DOCX 형식일 수 있습니다. 편지 병합 템플릿을 만들려면 MS Word를 사용할 수 있습니다. 그러나 Python에서 이 절차를 자동화하려면 아래 단계를 수행할 수 있습니다.

  • DocumentBuilder 클래스의 개체를 만듭니다.
  • DocumentBuilder.insert\text\input() 메서드를 사용하여 텍스트를 삽입합니다.
  • DocumentBuilder.insert\field() 메서드를 사용하여 병합 필드를 삽입합니다.
  • 필요에 따라 텍스트 삽입 및 병합 필드를 반복합니다.
  • DocumentBuilder.document.save() 메서드를 사용하여 템플릿을 파일로 저장합니다.

다음 코드 샘플은 Python을 사용하여 DOCX 메일 병합 템플릿을 만드는 방법을 보여줍니다.

import aspose.words as aw

# Create a document builder
builder = aw.DocumentBuilder()

# Insert a text input field the unique name of this field is "Hello", the other parameters define
# what type of FormField it is, the format of the text, the field result and the maximum text length (0 = no limit)
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)

# Insert a paragraph break into the document
builder.insert_paragraph()

# Insert mail body
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()

# Insert mail ending
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")

# Save the template as a DOCX file
builder.document.save("mail_merge_template.docx")

다음은 위의 코드 샘플을 사용하여 방금 만든 템플릿의 스크린샷입니다.

파이썬에서 편지 병합 템플릿 만들기

Python에서 편지 병합 템플릿을 사용하여 Word 문서 생성

이제 편지 병합 템플릿을 만들었으면 해당 필드를 값으로 채울 차례입니다. 다음은 Python의 편지 병합 템플릿에서 Word 문서를 생성하는 단계입니다.

  • Document 클래스를 사용하여 편지 병합 템플릿을 로드합니다.
  • Document.mail\merge.execute() 메서드를 호출하고 배열 형태로 데이터를 전달합니다.
  • Document.save() 메서드를 사용하여 생성된 문서를 저장합니다.

다음 코드 샘플은 편지 병합 템플릿에서 Word 문서를 생성하는 방법을 보여줍니다.

import aspose.words as aw

# Load the mail merge template
doc = aw.Document("mail_merge_template.docx")

# Fill the fields in the document with 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"]
    )

# Save the document
doc.save("mail_merge_populated.docx")

다음 스크린샷은 편지 병합 템플릿에서 생성한 Word 문서를 보여줍니다.

파이썬의 편지 병합 템플릿에서 워드 문서 생성

무료 라이선스 받기

무료 임시 라이선스를 얻으면 Aspose.Words for Python을 평가 제한 없이 사용할 수 있습니다.

결론

MS Word 편지 병합은 미리 정의된 템플릿에서 Word 문서를 생성하는 유용한 기능입니다. 편지 병합을 자동화하기 위해 이 문서에서는 편지 병합 템플릿을 만들고 Python에서 데이터로 채우는 방법을 다뤘습니다. 문서를 사용하여 Python용 Aspose.Words의 다른 기능을 탐색할 수도 있습니다. 질문이 있는 경우 포럼에 자유롭게 게시하십시오.

또한보십시오