파이썬에서 docx를 다루는 여러 라이브러리들(pypandoc
, docx
, python-docx
) 중 star가 가장 많은 python-docx를 선택해 사용하였다. 기회가 된다면 다른 라이브러리를 사용해보는 것도 좋은 공부가 될 것 같다.
Installing docx
pip install python-docx
Using
사용법은 공식문서에 잘 설명되어 있다.
from docx import Document
# import Inches using for add picture
from docx import Inches
# 문서를 선언
document = Document()
# Write title
document.add_heading('Document Title', 0)
# Write content
p = document.add_paragraph('This is first paragraph')
# 다음과 같이 p(문단) 뒤에 특정 글자만 추가해줄 수 있다.
p.add_run('by').bold = True
p.add_run('python-docx')
p.add_run('-sckim.').italic = True
# Write list format paragraph
document.add_paragraph(
'some text for list',
style='ListBullet' # 점 모양 리스트
# style='ListNumber' # 숫자 리스트
)
# Add some pic
ducment.add_picture('name.png', width=Inches(1.25))
# Also can add tables
table = documetn.add_table(row=1, col=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
row_cells = table.add_row().cells
row_cells[0].text = str(item.qty)
row_cells[1].text = str(item.id)
row_cells[2].text = item.desc
# Page Breaking
# Automatically page break
document.add_page_break()
# Saving
document.save('name.docx')
Advanced usage
후기
python-docx를 사용해 보면서 잘 만들어진 완성도 높은 라이브러리라는 생각이 들었다. 특히나 python을 사용하여 docx로 다양한 형식의 수준 높은 파일 또한 쉽게 만들어 낼 수 있을 것 같다는 생각이 들었다. (하지만 누가 그렇게 만들까, word를 켜서 직접 gui로 만들고 말지…)
다만 다양한 기능을 갖추고 있기 때문에 그냥 string을 docx 형식으로 저장만 하는 상황에서는 굳이 전체 라이브러리가 필요하지 않다. 그냥 docx 형식으로 저장만 할 경우에는 다른 가벼운 라이브러리들도 충분히 좋을 것 같다.
'backend > python' 카테고리의 다른 글
파이썬으로 audio 파일 다루기 - pydub (5) | 2017.10.16 |
---|---|
PIL (python image library, pillow) 사용해서 dpi, image size 변경 (0) | 2017.10.14 |
Django admin을 더 풍성하게, django jet (0) | 2017.10.11 |
flake8: 파이썬 문법을 체크하자 (0) | 2017.03.29 |
pyenv virtualenv 실행시 오류 (0) | 2017.03.17 |