본문 바로가기
카테고리 없음

파이썬으로 Word 문서 자동 생성하기 - python-docx 활용법

by 혜택보관소 2024. 11. 27.

Word 문서는 비즈니스 문서, 보고서, 계약서 등 다양한 상황에서 널리 사용됩니다.

파이썬의 python-docx 라이브러리를 사용하면 Word 문서를 자동으로 생성하고 수정할 수 있습니다.

이번 글에서는 python-docx를 활용해 Word 문서를 생성하고 텍스트와 이미지 추가, 서식 지정 등을 자동화하는 방법을 실습 예제와 함께 소개합니다.

파이썬 Word 문서 자동 생성

1. python-docx 설치

python-docx는 Word 문서를 생성하고 다룰 수 있는 파이썬 라이브러리입니다.

다음 명령어로 설치할 수 있습니다:

pip install python-docx

2. Word 문서 생성

Word 문서를 새로 생성하고 기본 텍스트를 추가하는 방법을 살펴보겠습니다.

예제: 기본 문서 생성

from docx import Document

# 문서 생성
doc = Document()

# 텍스트 추가
doc.add_heading("파이썬으로 생성된 Word 문서", level=1)
doc.add_paragraph("이 문서는 python-docx를 사용하여 자동으로 생성되었습니다.")

# 문서 저장
doc.save("generated_document.docx")
print("Word 문서가 생성되었습니다.")

위 코드는 새 문서를 생성하고 제목과 본문을 추가한 후 저장합니다.

add_heading()은 제목을 추가하는 데 사용됩니다.

3. 텍스트 서식 지정

python-docx를 사용해 텍스트에 서식을 지정할 수 있습니다.

예를 들어, 굵은 글씨나 이탤릭체로 텍스트를 강조할 수 있습니다.

예제: 서식 있는 텍스트 추가

# 서식 있는 텍스트 추가
paragraph = doc.add_paragraph()
run = paragraph.add_run("이것은 굵은 글씨로 표시됩니다.")
run.bold = True

run = paragraph.add_run(" 그리고 이것은 이탤릭체입니다.")
run.italic = True

# 저장
doc.save("formatted_text.docx")
print("서식 있는 텍스트가 포함된 문서가 저장되었습니다.")

위 코드는 add_run()을 사용해 텍스트에 개별적으로 서식을 적용하는 방법을 보여줍니다.

4. 표 추가

Word 문서에 표를 추가하여 데이터를 정리된 형식으로 표시할 수 있습니다.

예제: 표 생성

# 표 추가
table = doc.add_table(rows=3, cols=3)
table.style = "Table Grid"

# 표 데이터 채우기
for row in table.rows:
    for cell in row.cells:
        cell.text = "데이터"

# 저장
doc.save("document_with_table.docx")
print("표가 포함된 문서가 저장되었습니다.")

위 코드는 3x3 크기의 표를 생성하고 각 셀에 텍스트를 추가합니다.

5. 이미지 삽입

Word 문서에 이미지를 삽입하여 시각적인 요소를 추가할 수 있습니다.

예제: 이미지 삽입

# 이미지 삽입
doc.add_picture("example.jpg", width=Inches(2.0))

# 저장
doc.save("document_with_image.docx")
print("이미지가 포함된 문서가 저장되었습니다.")

위 코드에서는 add_picture()를 사용해 이미지를 삽입합니다.

widthheight를 사용하여 이미지 크기를 조정할 수 있습니다.

6. 템플릿 기반 문서 생성

기존 템플릿 문서를 불러와 내용을 수정하거나 새 데이터를 추가할 수 있습니다.

예제: 템플릿 수정

# 기존 문서 로드
template_doc = Document("template.docx")

# 텍스트 추가
template_doc.add_paragraph("이 텍스트는 기존 템플릿에 추가된 내용입니다.")

# 저장
template_doc.save("updated_template.docx")
print("템플릿 문서가 업데이트되었습니다.")

위 코드는 기존 템플릿 문서를 수정하고 새 텍스트를 추가합니다.

7. 자동화된 문서 생성 예제

다음은 특정 데이터 리스트를 사용하여 반복적으로 Word 문서를 생성하는 자동화 예제입니다.

예제: 자동화된 보고서 생성

# 데이터 리스트
data_list = [
    {"이름": "김철수", "성적": 85, "등급": "B"},
    {"이름": "박영희", "성적": 92, "등급": "A"},
    {"이름": "이민수", "성적": 78, "등급": "C"},
]

# 문서 생성 및 데이터 추가
for data in data_list:
    report = Document()
    report.add_heading(f"{data['이름']}님의 성적 보고서", level=1)
    report.add_paragraph(f"성적: {data['성적']}")
    report.add_paragraph(f"등급: {data['등급']}")
    report.save