보고서 작성하기
python-docx 패키지의 기본 기능을 사용해 쇼핑 트랜드 보고서를 작성해 보겠습니다. python-docx 패키지는 매우 복잡한 레이아웃을 구현하기 어렵다는 한계가 있지만 마이크로소프트 워드 문서를 생성하고 텍스트, 이미지, 표 등 객체를 삽입하기에는 충분합니다.
워드 문서 작성하기
python-docx 패키지를 사용하여 쇼핑 트렌드 보고서를 워드 문서로 작성해 봅시다. 워드 문서를 만들고 보고서 제목을 입력한 후, 파일로 저장하는 순서로 작성할 것입니다.
비주얼 스튜디오 코드에서 새로운 파일을 만들고, 파일명을 'step_3_1.py'로 지정하세요. 다음 코드를 입력한 후, 대화형 창에서 실행하세요. 'output' 폴더에 'step_3_1.docx' 워드 문서가 생성됩니다. 이 문서를 열면 소스 코드에 입력한 폰트 서식이 제대로 적용된 것을 확인할 수 있습니다.
from datetime import datetime as dt
from pathlib import Path
from docx import Document # Document 함수 불러오기
from docx.document import Document as DocumentObject # Document 객체
from docx.shared import Pt # 포트 크기 설정 클래스(포안트 단위)
from docx.text.run import Run
from step_1_1 import OUT_DIR
def apply_font_style(run: Run, size_pt: int = None, is_bold: bool = None): # 09
if size_pt:
run.font.size = Pt(size_pt) # 폰트 크기 지정 # 11
if is_bold is not None:
run.font.bold = is_bold # 폰트 두께 설정 # 13
def init_docx() -> DocumentObject:
doc = Document() # Document 객체 생성
p1 = doc.add_paragraph(style="Heading 1") # Paragraph 객체 생성 # 17
run1 = p1.add_run("쇼핑 트랜드 정보") # Run 객체 생성 # 18
apply_font_style(run1, size_pt=25, is_bold=True) # 19
date_string = dt.now().strftime("%Y.%m.%d") # 현재 날짜
apply_font_style(p1.add_run(date_string), size_pt=15) # 21
return doc # Document 객체 반환
if __name__ == "__main__":
doc = init_docx()
doc.save(OUT_DIR / f"{Path(__file__).stem}.docx") # 워드 문서 파일로 저장

09 폰트를 지정하는 함수 apply_font_style()를 정의합니다. 매개변수 run에 Run 객체를, size_pt애 폰트 크기를, is_bold에 폰트 굵기를 지정합니다.
11 변수 size_pt를 Pt 객체로 변환한 후, Run 객체의 font.size 속성에 저장하여 폰트 크기를 설정합니다.
13 변수 is_bold를 Run 객체의 font.bold 속성에 저장하여 폰트 두께를 설정합니다.
17 Document 객체의 함수 add_paragraph()를 사용하여 Paragraph 객체를 생성합니다. 이때 매개변수 style에 단락 서식을 지정할 수 있습니다.
18 함수 Paragraph 객체의 함수 add_run를 사용하여 Run 객체를 생성하고, 변수 run1에 저장합니다.
19 함수 apply_font_style()를 호출하여 Run 객체의 폰트 크기를 25 포인트. 굵은 서식을 지정합니다.
21 함수 add_run()를 사용하여 Run 객체를 생성하고, 이를 함수 apply_font_style()의 입력값으로 전달하여 Run 객체를 생성과 폰트 서식 설정을 한 번에 처리합니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 종목별 시가총액 데이터 수집하기 - 파이썬 패키지 준비하기 (0) | 2026.02.18 |
|---|---|
| 워드 문서에 표와 이미지 삽입하기 (0) | 2026.02.14 |
| 쇼핑 트렌드 정보 수집하기 (0) | 2026.02.08 |
| 상품 이미지 캡처하기 (0) | 2026.02.05 |
| 쇼핑 트렌드 정보 수집하기 (0) | 2026.02.02 |