한/글의 표를 자동으로 작성하는 여러 가지 기법이 있다.
가장 많이 사용되는 방법은 아무래도 필드를 사용하는 방법일텐데,
그밖에도 이미 엑셀이나 dict, 데이터프레임 등으로 만들어진 데이터를
한/글에 삽입해야 할 때에는, 그 과정이 상당히 까다롭다.
그래서 table_from_data 메서드를 추가해보았다.
table_from_data의 기본적인 사용법은 아래와 같다.
아래와 같이 학급성적 dict가 있다고 가정하면,
score = {
"ilco": {"kor": 90, "eng": 100, "mat": 80, "soc": 70, "sci": 100},
"martin": {"kor": 88, "eng": 77, "mat": 99, "soc": 100, "sci": 60},
"olive": {"kor": 67, "eng": 78, "mat": 89, "soc": 91, "sci": 100},
"yebb": {"kor": 100, "eng": 100, "mat": 100, "soc": 100, "sci": 100},
}
hwp.table_from_data(score) 라고 입력하면
아래와 같이 표가 삽입된다.
행/열 변환은 transpose=True
근데, 데이터를 가만히 보니?
행과 열이 반대로 되어 있는 느낌이다.
과목이 열방향으로, 학생이 행방향으로 작성돼야 하는데?
Wk이런 경우에는 transpose=True를 추가하면 행과 열이 반대로 전치된다. 기본값은 False
왼쪽위(첫 번째) 셀은 항상 "구분" 아니던가?
행정 하시는 분들은 항상 첫 번째 셀에는 고민없이 "구분"을 채우시리라 생각한다.
왼쪽 위 빈칸은 header0="구분" 식으로 파라미터를 줘서 채울 수 있다. (기본값은 빈 문자열, "")
글자처럼 취급 treat_as_char
create_table 메서드와 마찬가지로
treat_as_char 파라미터를 통해 글자처럼 취급 여부를 선택할 수 있다. (기본값은 False)
파라미터 설명은 여기까지.
참고사항
① 표가 페이지를 넘겼을 때, 제목행이 반복된다.
아래아한글의 기능인 "제목 셀"이 기본적으로 활성화되어 있기 때문에,
표가 한 페이지를 넘어가는 경우 제목셀이 반복된다.
(이를 해제하고 싶다면 header=False를 주면 된다.)
② dict 대신 list나 데이터프레임을 사용할 수도 있다.
사실 내부적으로는 다 df로 변환된다.
그래서 df로 변환할 수 있는 list는 당연히 삽입 가능하다.
③ 엑셀이나 csv파일의 경로를 넣어도 된다.
이런 기능까지 넣어도, 누가 쓰기나 할까 싶기는 했는데 그냥 만들어보았다. (상대경로 입력 가능)
여기까지 pyhwpx 모듈의
table_from_data 메서드에 대해 알아보았다.
마치며
개발이란 게 쉽지 않구나...
아직도 큰 뼈대에 대한 고민이 풀리지 않고,
단순히 편의함수 모음처럼 1차원적으로 진행되는 느낌이다.
(편의함수 모음으로 끝나더라도 괜찮긴 한 걸까?)
하여튼 심적으로 다소 맥이 빠지는 중이다.
누가 피드백을 주는 것도 아니고,
현장에서 떠난지도 오래 되어서 행정 실무 감도 다 잃어버렸다.
설상가상으로 한컴에서는 웹한글 기안기와 SDK 기반 체제로 돌아서고 있으니
오토메이션 API는 조만간 버려질 기술이 아닌가 하는 우려도 든다.
(어도비 플래시처럼...)
부정적인 생각이 많이 드는 요즘...
'아래아한글 자동화 > pyhwpx 사용법' 카테고리의 다른 글
[pyhwpx 개발일지] 모든 파라미터를 API대로 만들 필요가 있을까? feat. insert_picture (0) | 2024.01.11 |
---|---|
한/글 구독을 해지했는데, pyhwpx로는 여전히 편집/저장이 가능했네^^; (2) | 2024.01.09 |
셀에 그라데이션 넣는 메서드 : gradation_on_cell (2) | 2024.01.08 |
댓글