해결된 질문
작성
·
411
답변 1
1
전체 코드와 실행방법은 아래 적어두었습니다.
태희님 안녕하세요^^
해결방법에는 여러 가지가 있는데,
제일 간단한 방법은 역시 시연화면처럼 복사-붙여넣기를 활용하는 것입니다.
채울 셀에 모두 셀필드를 매겨놓은 상태에서 시작합니다.
반복되는 부분만 복사를 해서 데이터 갯수만큼 붙여넣기 반복을 실행합니다. (표가 모두 분리되어 있겠지요?)
그 다음은 표창장 만들기 같은 예제처럼, 반복되는 필드 각각에 PutFieldText로 값을 채우고
마지막으로 모든 표를 병합합니다. 코드는
hwp.Run("TableMergeTable"), 단축키는 Ctrl-NZ입니다.
위 네 과정만 수행하면 됩니다.
===============
우선 예시데이터는 아래와 같이 엑셀로 만들어 두었습니다.
한/글에는 셀필드 작업까지는 수작업으로 해 두었습니다.
이제 주피터노트북이나 파이참을 켭니다. (엑셀파일은 열려 있지 않아도 됩니다. 한/글 문서는 열어 두세요.)
아래 코드를 실행합니다. (엑셀파일 경로는 유의하세요ㅎ)
from pyhwpx import Hwp
import pandas as pd
hwp = Hwp()
df = pd.read_excel("./데이터.xlsx")
# 반복될 부분 잘라내기(*****수작업 필요*****)
# df 갯수만큼 반복될 부분 붙여넣기
for i in range(len(df)):
hwp.Paste()
# 필드 채우기(필드명과 df 칼럼명이 일치하면 한 방에 됨)
hwp.put_field_text(df)
# 모든 표 다시 병합하기
# 1번 표(제목표)로 커서를 옮긴 후
# 아래 코드 실행
while True:
if not hwp.TableMergeTable():
break
수작업을 완전히 빼거나 팝업이 안 뜨게 할 수도 있지만,
이 정도로만 손이 가게 합의하면 코드가 10줄을 안 넘기네요^^
유튜브로도 공유해놓으니 한 번 참고해 주시기 바랍니다.
잘 이해가 안 되는 부분이 있으면 물어봐주시고,
본 답변이 도움이 되었길 바랍니다.
행복한 하루 되세요^^