Python 워드 파일로 기록할 수 있는 python-docx 라이브러리 알아보기
오늘은 Python으로 워드 파일을 만들 수 있고, 가져올 수도 있는 python-docx 패키지를 알아보려 합니다.
python-docx 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install python-docx
pip로 python-docx를 설치합니다.
예제
from docx import Document
docx 패키지에서 Document를 가져옵니다.
document = Document()
Document 객체를 생성합니다.
document.add_heading('Test Title', 0)
헤딩을 준 문자열을 기록합니다.
document.add_heading('Heading, level 1', level=1)
헤딩의 레벨을 정해서 부여할 수도 있습니다.
paragraph = document.add_paragraph('paragraph test')
새로 추가할 단락을 추가합니다.
paragraph.add_run('bold').bold = True
paragraph.add_run(' and ')
paragraph.add_run('italic.').italic = True
볼드체, 이텔릭체를 설정할 수 있습니다.
document.add_paragraph('Intense quote', style='Intense Quote')
document.add_paragraph('unordered list', style='List Bullet')
document.add_paragraph('ordered list', style='List Number')
스타일을 통해 글머리를 지정할 수 있습니다.
document.add_picture('test.png')
사진을 첨부할 수 있습니다.
records = (
(1, '100', 'java'),
(2, '101', 'c'),
(3, '102', 'python')
)
튜플로 테이블에 넣을 데이터를 구성합니다.
table = document.add_table(rows=1, cols=3)
cells = table.rows[0].cells
cells[0].text = 'first'
cells[1].text = 'second'
cells[2].text = 'third'
테이블을 생성하고 각각의 셀의 헤더에 값을 지정합니다.
for i, j, k in records:
row_cells = table.add_row().cells
row_cells[0].text = str(i)
row_cells[1].text = j
row_cells[2].text = k
반복문을 통해서 각자의 헤더 아래에 순서대로 대입됩니다.
document.add_page_break()
새로운 페이지로 넘어갈 수 있습니다.
document.save('test.docx')
만든 document를 test.docx라는 파일명으로 저장합니다.
f = open('test.docx', 'rb')
document = Document(f)
f.close()
위와 같이 이미 있는 워드 파일도 Document 객체로 불러올 수 있습니다.
Written on June 21, 2019