Ch.1 Python 라이브러리 15선

python-docx — 코드로 Word 문서 생성

article

핵심 내용

python-docx는 파이썬으로 Word 문서를 자동 생성합니다

한 줄 요약: .docx 파일을 코드로 만들어서 제목, 본문, 표, 이미지까지 넣는 라이브러리. 실생활 비유: '자동화된 타이피스트'입니다. 양식은 한 번만 만들어두면, 이름·날짜·금액만 바꿔서 100개든 1000개든 똑같은 문서를 찍어냅니다. Word를 열 필요도 없어요.

반복 문서 작업을 코드로 해결

수동 (Word): 양식 열기 → 이름 지우기 → 새 이름 입력 → 날짜 수정 → 다른 이름으로 저장. 100명이면 100번 반복.

코드 (python-docx): 이름 리스트 준비 → for문 돌리기 → 100개 파일 자동 생성. 1분이면 끝.

설치 한 줄, 문서 생성도 세 줄

pip install python-docx
from docx import Document

doc = Document()
doc.add_heading('첫 번째 문서', level=1)
doc.add_paragraph('python-docx로 만든 문서입니다.')
doc.save('첫문서.docx')
print('문서 저장 완료!')

실행 결과: 현재 폴더에 '첫문서.docx'가 생성됩니다. 열어보면 큰 제목 '첫 번째 문서'와 본문 한 줄이 들어가 있어요. Word 없이도 .docx 파일이 만들어지는 게 핵심입니다.

AI에게 양식까지 구체적으로 요청하세요

좋은 프롬프트 예시 "python-docx로 근로계약서 양식 만들어줘. 제목은 24pt 가운데 정렬, 갑(회사)·을(근로자) 정보를 2열 표로 넣고, 계약 조건 5개 항목은 번호 리스트로, 맨 아래 서명란(갑___ 을___)도 추가해줘."

프롬프트 변형 • "이름 리스트를 받아서 각각 다른 파일로 계약서 100개 생성해줘" • "기존 템플릿.docx를 열어서 {이름}, {날짜} 부분만 교체해줘" • "표의 첫 행은 회색 배경 + 굵은 글씨로 해줘"

from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()

# 제목 (24pt, 가운데 정렬)
title = doc.add_heading('근로계약서', level=1)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER

# 갑·을 정보 표
table = doc.add_table(rows=2, cols=2)
table.cell(0, 0).text = '갑 (회사)'
table.cell(0, 1).text = '주식회사 OO'
table.cell(1, 0).text = '을 (근로자)'
table.cell(1, 1).text = '홍길동'

# 서명란
doc.add_paragraph('\n갑: ___________    을: ___________')
doc.save('근로계약서.docx')

수료증 100장 일괄 생성기

from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH

# 수강생 명단
students = ['김민수', '이지은', '박준호', '최서연', '정하늘']

for name in students:
    doc = Document()

    # 제목
    title = doc.add_heading('수 료 증', level=0)
    title.alignment = WD_ALIGN_PARAGRAPH.CENTER

    # 수강생 이름
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(name)
    run.font.size = Pt(28)
    run.bold = True

    # 본문
    body = doc.add_paragraph()
    body.alignment = WD_ALIGN_PARAGRAPH.CENTER
    body.add_run('\n위 사람은 파이썬 기초 과정을 수료하였음을 증명합니다.')

    # 날짜 + 기관명
    footer = doc.add_paragraph()
    footer.alignment = WD_ALIGN_PARAGRAPH.CENTER
    footer.add_run('\n2026년 3월 14일\n코딩아카데미 원장')

    doc.save(f'수료증_{name}.docx')

print(f'{len(students)}장의 수료증 생성 완료!')

실행 결과: '수료증_김민수.docx', '수료증_이지은.docx'… 이름별로 파일이 생성됩니다. 실제 프로젝트에서는 엑셀에서 명단을 읽어오거나, 데이터베이스에서 가져와서 수백 장을 한 번에 만들 수 있어요.

1. 명단 준비: 엑셀/CSV에서 이름 리스트를 가져온다

2. 템플릿 설계: 제목·본문·서명란 등 양식을 코드로 정의

3. for문 반복: 이름마다 새 문서 생성 → 이름 삽입 → 저장

4. 일괄 완성: 폴더에 수백 개 .docx 파일이 자동 생성

python-docx에서 새 문서를 만드는 코드는?

key

핵심 용어

📝 문서 생성

빈 문서부터 시작해서 제목, 본문, 표를 코드로 추가

📄 템플릿 활용

기존 .docx 양식을 열어서 특정 부분만 교체

🎨 서식 지정

글꼴, 크기, 굵기, 색상, 정렬 등 Word의 서식을 코드로 적용

📜 계약서 대량 생성

이름·날짜만 바꿔서 근로계약서, 임대차계약서 100장 생성

🏅 수료증·상장 발급

수강생 명단으로 수료증을 한 번에 만들기

📊 보고서 자동화

데이터베이스에서 가져온 수치로 월간 보고서 작성

check_circle

핵심 정리

  • 1python-docx는 Word 문서를 코드로 생성·수정하는 라이브러리
  • 2Document() → add_heading() → add_paragraph() → add_table() → save()가 기본 흐름
  • 3for문과 결합하면 계약서·수료증·보고서 수백 장을 1분 안에 생성
  • 4AI에게 양식(글꼴, 정렬, 표)까지 구체적으로 요청하면 실전급 코드를 바로 받을 수 있음

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작