12. Python-docx 사용해보기
2018. 7. 7. 22:13
docx_practice.py
form.docx : docx문서 양식파일(내용 없음)
form_save.docx : docx문서 양식파일(양식 내용 보존)
설치
구글에서 [ python-docx ]를 검색해서 공식홈페이지 들어간 뒤 설치해보자.
- csv모듈과는 다르게, 아나콘다 설치를 하더라도 자동으로 설치되지 않기 때문에 수동으로 설치를 해줘야한다.
- 방법은 2가지가 있다.
(1) 파이썬 프롬프트(터미널)에서 pip(핍)을 이용하는 방법이 있다. (생략)
(2) 파이참의 Setting > Project : mandoo_management > Project interpreter 를 이용하는 방법이 있다.(실습) - Project Interpreter에 가면, 해당 프로젝트의 환경설정이 모두 나타나있다.
우측의 초록색 플러스 버튼을 누른 뒤, [ python-docx ]를 검색한 후, 왼쪽하단의 Install Package를 눌러 설치하자.
- 닫아보면 Interpreter에 설치된 것을 확인할 수 있다.
*다른 프로젝트에서는 설치되지 않는 것을 확인해보았음. - mandoo_management프로젝트에서 새로운 파이선 파일 docx_practice.py를 만들고 공식문서의 import부분을 복사해오자.
사용법
- 클래스처럼 Document()를 document변수에 넣는다.
- document.add_heading( '제목명' , 0)을 통해서 제목을 넣을 수있다.
- document.save('파일명')을 통해 docx파일로 저장한다.
docx의 글자체 등 스타일은 미리 양식을 만들어 놓아야한다.
- add_heading( '',0) -> MS WORD의 [제목]
- add_heading( '',1) -> MS WORD의 [제목1]
- add_heading( '',2) -> MS WORD의 [제목2]
- add_heading( '',3) -> MS WORD의 [제목3]
- add_paragraph('') -> MS WORD의 [표준]
이므로 미리 양식을 지정해놓고 , 프로젝트 폴더내 위치시켜서, Document('파일명')선언시 빈칸이 아닌, '파일명'을 넣어준다.
양식을 만드는 방법은
- form.docx를 프로젝트내에서 생성하고
- 해당 양식에서, 원하는 스타일로 바꾼 뒤
- 블록으로 선택해놓고
- 우측상단의 스타일에서 해당 [ 양식 >우클릭> 선택영역과 일치하도록 제목 업데이트 ]
- 필요한 모든 것 위와 같은 방법으로 (2~4) 다 바꾼 뒤, 저장
- document = Document( 'form.docx') 폼 양식 지정
- 파일 확인후, 맨 처음의 양식 지우기
새로운 스타일을 만든 다음, 파이썬-docx에서 지정해줄 수 있다.
제목이 아닌 add_paragraph로 들어간다.
- 마찬가지로, 동그라미 스타일로 작성후 ->
- 블록지정 한 다음,
- 스타일메뉴 중 새로운 스타일을 클릭하여, 이름을 지정해준다.
- 파이썬에서는 document.add_paragraph( ' 내용 ', style = '스타일명' ) 으로 스타일인자를 추가시켜주면 된다.
테이블도 만들어보자. 공식문서에서 일단 가져오자.
- 공식문서의 테이블 부분을 복사해서 가져온다.
- 이 때, for문의 in리스트인 recordset이 빨간줄이 뜬다. 위에서 문서상에도 선언을 안해놨다.. - 코드를 확인하니,
- table = document.add_table( row =1 , cols = 3)로 table을 하나 생성하여 변수에 담는다. row는 1줄 칼럼은 3개
- hdr_cells = table.rows[0].cells 을 통하여 칼럼명row인 0번째row의 모든 cell들에 대한 변수를 생성한다.
- hdr_cells[0], [1], [2] .text 를 통해서, 해당row의 각 cell들에 접근하여 문자열로 데이터를 집어넣는다. - 리스트는 없으므로, for문을 지우고, 안에 내용은 띄워쓰기를 삭제시켜서 해석해본다.
- row_cells = table.add_row().cells 를 통해 새로운 row를 하나 추가하고, 동시에 그 row의 모든 셀을 받도록 한다.
- 해당row의 0번째, 1, 2번째 셀들에 접근하여 문자열 데이터를 집어넣는다.
표도 스타일을 미리 정해줄 수 있다.
- 아무표나 작성한 뒤
- 더블클릭하고 -> 표 스타일 메뉴 -> 표스타일 새로 만들기
- 스타일 이름 지정해주고, 양식 고르기
- 파이썬에서 table 변수 생성한 다음 줄에,
table.style = '스타일명' 을 통해 표 스타일 지정해주기
form.docx에서는 이미 양식이 저장되어 있기 때문에,
docx파일 생성후, 양식 지우기를 하기 싫다면,
form.docx내용을 다 지워놓으면 된다.
- form.docx의 내용을 다 지우자. 양식은 저장되어있다.
- 그리고 나서 다시한번 demo.docx를 생성해보자.
- 앞에는 양식이 그대로 나와서 지워줬던 것을 안지워도 된다.
'빅데이터 관련 프로그래밍 > Python3 기초 및 업무자동화' 카테고리의 다른 글
업무 자동화 최종정리 : CSV모듈로 CSV읽고 -> 클래스모듈화를 통한 인스턴스생성 및 계산 칼럼추가 -> CSV 쓰기 + MS WORD 문서화까지(.docx) (0) | 2018.07.07 |
---|---|
13. 기존 프로젝트를 python-docx로 문서화해보기 (0) | 2018.07.07 |
11. 파이썬 CSV모듈 (읽기, 쓰기) + 클래스 분할하기) (0) | 2018.07.05 |
참고 : 엑셀의 CSV파일을 읽고->클래스를 활용하여 함수까지계산 -> CSV파일로 쓰기 (0) | 2018.07.05 |
10. 다수의 인스턴스 생성을 위한 엑셀에 인자 입력-> csv로 저장 -> 파일읽기-> 인스턴스 생성 -> 파일 쓰기 (0) | 2018.07.04 |