주요 금리지표 데이터 입력하기
생성한 워드 문서에 주요 금리지표 데이터를 입력해 봅시다.
비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_3_3.py'로 지정합니다. 다음 코드를 입력하고, 대화형 창에 실행합니다. 주요 금리지표 관련 내용이 워드 파일이 생성됩니다.
ch_10/step_3_3.py
from pathlib import Path
import pandas as pd
from docx import Document
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.shared import Mm
from step_1_1 import IMG_DIR, OUT_DIR
from step_2_1 import OUT_2_1
from step_3_1 import apply_font
from step_3_2 import OUT_3_2, add_blank_paragraph
OUT_3_3 = OUT_DIR / f"{Path(__file__).stem}.docx"
def insert_indicators(): # 13
doc = Document(OUT_3_2)
r_read = doc.add_paragraph().add_run("1. 주요 금리(최근 24개월")
apply_font(r_read, size_pt=14, is_bold=True) # 폰트 설정
add_blank_paragraph(doc, size_pt=10) # 10 포인트 크기의 빈 단락 삽입
table = doc.add_table(rows=1, cols=5) # 표 추가(행 1개, 열 5개) # 18
table.alignment = WD_TABLE_ALIGNMENT.CENTER # 표 가로 정렬
table.allow_autofit = False # 표 너비 자동 맞춤 해제 # 20
tr = table.rows[0] # 첫 번째 행 반환
with pd.ExcelFile(OUT_2_1) as xlsx:
for idx, sheet_name in enumerate(xlsx.sheet_names):
df_raw = pd.read_excel(xlsx, sheet_name=sheet_name)
df_raw = df_raw.tail(24) # 마지막 24개월 데이터 추출
td = tr.cells[idx] # tr 행에서 idx 위치의 셀 반환
td.width = Mm(35.5) # 셀 너비(35.5 밀리미터) 설정
p1 = td.paragraphs[0]
r1 = p1.add_run(sheet_name) # 금리지표 이름 입력
apply_font(r1, size_pt=12, is_bold=True, rgb="333333")
p2 = td.add_paragraph()
last_value = df_raw["DATA_VALUE"].iloc[-1]
r2 = p2.add_run(f"{last_value:,.2f}") # 전월말 데이터 입력
apply_font(r2, size_pt=14, is_bold=True, rgb="333333")
p3 = td.add_paragraph() # 단락 추기
diff = last_value - df_raw["DATA_VALUE"].iloc[0] # 40
arrow = "▲" if diff > 0 else "▼" if diff < 0 else "" # 화살표 # 41
rgb = ("FF0000" if diff > 0 else "0000FF"
if diff < 0 else "000000") # 색상 # 43
r3 = p3.add_run(f"{arrow}{abs(diff):,.2f}%p") # 금리지표 변동량 입력
apply_font(r3, size_pt=10, is_bold=True, rgb=rgb)
p4 = td.add_paragraph() # 단락 추가
p4.paragraph_format.left_indent = Mm(-1) # 단락 들여쓰기 설정
img_path = IMG_DIR / f"{sheet_name}.png" # 이미지 경로
p4.add_run().add_picture(img_path.as_posix(), # 50
Mm(30), Mm(8)) # 이미지 추가 # 51
add_blank_paragraph(doc, size_pt=10) # 10 포인트 크기의 빈 단락 삽입
doc.save(OUT_3_3)
if __name__ == "__main__":
insert_indicators() # 주요 금리지표 데이터 입력
13 주요 금리지표 데이터를 문서에 입력하는 함수 insert_indicators()를 정의합니다.
18 금리지표를 입력할 표를 생성합니다.
20 allow_autofit 속성을 False로 지정해서 표의 너비를 수동으로 조정할 수 있도록 합니다.
40 금리지표의 마지막 값에서 첫 번째 값을 빼서 변화량을 구합니다.
41~43 지표 변화량에 따라 화살표와 문자열의 색상을 설정합니다.
50~51 함수 add_picture()를 사용하여 이미지를 추가합니다. 이때 이미지의 경로를 문자열로 변환하기 위해 함수 as_posix()를 사용합니다.
'output' 폴더에 생성된 워드 파일 'step_3_3.docx'를 열어 주요 금리지표 표가 잘 생성되었는지 확인합니다. 제목과 표가 입려되고, 그 아래 표에도 각 금리지표의 마지막 값, 변화량과 그에 따른 문자열에 색상이 잘 반영되었습니다. 마지막 단계에 선 그래프도 잘 삽입되어 있습니다.

'프로그래밍 언어 > Python' 카테고리의 다른 글
| 아파트 매매 실거래가 지도 (0) | 2026.05.26 |
|---|---|
| 정기예금 상품 목록 입력하기 (0) | 2026.05.23 |
| 정기예금 금리 현황표 작성하기 - 보고서 작성하기(제목 입력) (0) | 2026.05.17 |
| 정기예금 금리 현황표 작성하기 - 보고서 작성하기(레이아웃 설정) (0) | 2026.05.14 |
| 금리지표 데이터 시각화하기 (0) | 2026.05.11 |