본문 바로가기
아래아한글 자동화/pyhwpx 사용법

[pyhwpx] 삽입할 필드가 너무 많을 때 : hwp.set_field_by_bracket()

by 일코 2024. 2. 10.

아래아한글 문서를 자동화할 때
가장 많이 사용하는 기법은 역시 "필드삽입"이다.

누름틀이나 셀필드를 미리 삽입해 두고
엑셀문서나 데이터프레임에서 필드를 일괄삽입하는 방식으로
hwp 문서를 자동화할 수 있는데,

문제는 필드가 너무 많을 때에는
필드 삽입작업도 너무 귀찮다는 것.

예를 들어 아래의 문서를 자동화하려면

필수보직기간 내 전보 사전승인 통보서_원본.hwp
0.05MB

저 빈 칸에 전부 필드를 삽입해야 한다고 생각하면
자동화를 위한 준비작업조차 빡센 상황이 된다...

실제로는 이런 경우에는 필드삽입보다
한 행만 남겨놓고, 나머지 행을 삭제한 후
소스(엑셀파일)에 맞춰 동적으로 행을 추가해 가는 방식이 더 적절할 것 같기는 하다.
나중에 다뤄볼 것.

이런 경우에는 set_field_by_bracket을 사용해보자.

필드가 매겨질 곳에 대괄호 두겹으로 필드명을 써넣고,
hwp.set_field_by_bracket()을 실행하면
해당 문자열로 셀필드를 삽입해준다.

시연을 위해 한 줄만 삽입해보았다.

 

이제 엑셀이나 db 또는 DataFrame에서 가져온 값을 put_field_text 등을 통해
삽입하면 끝.

시연을 위해 한 열만 완성해보았다.

누름틀을 삽입할 때는

셀필드가 아니라 누름틀을 삽입할 때는
중괄호 두 겹을 넣고 set_field_by_bracket을 실행하면 된다.
이 때에는 {{필드명:안내문:메모}} 방식으로 콜론을 구분자로 입력하면 된다.

중괄호 두 겹으로, 셀 안에 누름틀을 삽입할 수도 있다.

2022년도에, 한 공공기관과 함께
어마어마한 분량의 엑셀파일 소스를 가지고
백페이지가 넘는 한/글 보고서(결산실적, 연결재무제표)들을
자동완성하는 프로그램을 만드는 프로젝트를 진행한 적이 있었다.

그 때 몇 시간 동안 주구장창 필드 매핑하던 노가다를 떠올려보면
이 메서드가 도움이 될 작업이 분명 있을 듯도 하다.

여러분의 업무자동화에도 적용해보시기를 바란다.

댓글