본문 바로가기
Integration & Python

Python으로 MS WORD 문서 작성하는 방법

by 누워서 코딩 2021. 2. 9.

Python으로 MS WORD 문서 작성하는 방법

 

업무를 하다보면 거의 동일한 문서이지만 날짜나 숫자의 부분만 업데이트해야 하는 경우가 많습니다. 이럴 경우 번거롭게 문서를 열고 부분을 찾아다니며 수정 해줘야하는데요. 자칫 실수로 누락되면 다시 보고해야 하는 번거로움이 발생할 수 있습니다.

 

 

하지만 파이썬을 활용해서 자동화한다면 업무 시간 단축과 동시에 오타 실수도 벗어날 수 있습니다.

오늘은 먼저 docx 형식의 word 문서를 생성하고 문단을 넣고 폰트를 변경하는 기본적인 내용을 살펴보겠습니다.

 

현재 python 3.x 설치되어 있다면, python-docx 패키지를 먼저 설치하여야 합니다. 여기서 주의할 점은 3.x 버전이라면 docx 패키지가 아니라 python-docx 패키지를 설치하셔야 합니다.

 

pip install python-docx

 

 

1. 문서 생성 방법

from docx import Document
document = Document()
document.save("new.docx")

 

실행하면, 다음처럼 문서가 빈 페이지의 문서가 생성된 것을 확인할 수 있습니다.

 

2. 본문에 타이틀(제목) 넣기

from docx import Document
document = Document()

document.add_heading('Title: Document', level = 0)
document.add_heading('Title: Document', level = 1)
document.add_heading('Title: Document', level = 2)
document.add_heading('Title: Document', level = 3)
document.add_heading('Title: Document', level = 4)
document.add_heading('Title: Document', level = 5)
document.add_heading('Title: Document', level = 6)
document.add_heading('Title: Document', level = 7)
document.add_heading('Title: Document', level = 8)

document.save("new.docx")

 

실행결과, 다음처럼 제목의 크기가 level값 파라미터를 넣으면 값의 크기에 따라 글씨 크기도 변경되는 것을 확인할 수 있습니다.

 

3. 문단 생성 및 문단 넣기

 

.add_paragraph() #문단을 생성해 준다.

 

.add_run #문단 객체에 텍스트를 추가해 준다.

 

다음 예제로 확인해 봅니다.

 

from docx import Document
from docx.shared import Pt, RGBColor, Parented

document = Document()

document.add_heading('Title: New Document', level = 0)

paragraph = document.add_paragraph("1번째 문단 추가. \n 줄 바꿈")
insert_paragraph = paragraph.insert_paragraph_before("2번째로 생성한 문단은 insert로 삽입")
paragraph = document.add_paragraph("이게 3번째 추가\n")
paragraph = document.add_paragraph("이게 4번째 연속 추가\n")
paragraph.add_run(" 4번째 문단에 글을 덧붙인다.")

paragraph = document.add_paragraph()
paragraph.add_run("5번째 문단, Font를 Arial로 변경.\n").Arial = True
paragraph.add_run(" 글자색 변경\n").font.color.rgb = RGBColor(255, 0, 0)
run = paragraph.add_run(" 위의 적용 사항을 모두 적용\n")

run.bold = True
run.font.color.rgb = RGBColor(0, 0, 255)
run.italic = True
run.font.name = "Calibri"
run.font.size = Pt(11)
paragraph.add_run("Calibri 폰트로 변경된 문단 추가")

document.save("new.docx")

 

실행 결과 확인

Tip: 한글 폰트 적용하려면?

 

한글 폰트는 영어 폰트와 다른 문자 체계인 eastAsis로 분류되기에, 다음과 같은 폰트 세팅을 해줘야 한다.

 

from docx.oxml.ns import qn

 

예제:

from docx.oxml.ns import qn

run._element.rPr.rFonts.set(qn('w:eastAsia'), '휴먼명조')

이 블로의 다른 포스팅 읽기

 

파이썬 셀레니움 이미지 크롤링 예제

1. venv 가상 환경 설치 vnnv 가상환경 가이드 문서 venv — Creation of virtual environments Source code: Lib/venv/ The venv module supports creating lightweight “virtual environments”, each with their own independent set of Python package

freernd.tistory.com

댓글