들어가며
이번 블로그에서는 한글 문서에 필드명을 부여하고
해당 필드에 값을 입력하는 방법을 알아보겠습니다.
이 방법을 알고 나시면
엑셀이나 다른 데이터 파일에서 데이터를 읽어와
한글 파일의 특정 필드에 값을 입력할 수 있습니다.
예를 들어
특정 제품들의 내용을 엑셀 파일이나 다른 데이터 파일로 저장하고 있는 상태에서
해당 제품의 내용만 한글 파일로 출력할 때 사용을 하는 등
한글 자동화를 구현함에 있어
기본적인 내용이라고 할 수 있습니다.
준비하기
먼저 한글 파일을 열어 필드명을 입력해야 합니다.
아래 그림과 같이
제품명과 일련번호를 작성해야 한다고 가정하겠습니다.
먼저 제품명을 입력할 곳에 커서를 두고
Ctrl + K, E를 눌러줍니다.
아래 그림과 같이 나타나면
필드 이름을 지정해 줍니다.
파란색 네모의 부분은 사용자에게 보이는 부분이므로
크게 신경 쓰지 않으셔도 되지만
빨간색 네모의 필드 이름은 값을 입력하기 위한 기준이 되므로
고유한 값을 입력해야 합니다.
이 방식으로 일련번호까지 입력이 되면 아래 그림과 같이 나타납니다.
다시 한번 강조하지만,
위 그림의 빨간색 네모 부분의 필드 이름을 정확히 입력해야 합니다.
입력할 내용의 안내문은 단순히 눈에 보이는 안내글자일 뿐 필드명은 아닙니다.
필드에 값 입력하기
필드에 값을 입력하기 위해서는
PutFieldText() 함수를 사용합니다.
한글 자동화 공식문서 HwpAutomation.pdf 파일을 참고하시면 됩니다.
PutFieldText() 함수는 두 개의 인자를 전달받을 수 있으며
첫 번째 인자는 필드 이름
두 번째 인자는 입력할 내용입니다.
코드를 작성해서 살펴보겠습니다.
import win32com.client as win32
import os, shutil
def execute_hwp(hwp_visible=True):
try:
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
except:
cache_dir = win32.gencache.GetGeneratePath()
if os.path.exists(cache_dir):
shutil.rmtree(cache_dir)
hwp = win32.gencache.EnsureDispatch('HWPFrame.HwpObject')
return hwp
finally:
if 'hwp' in locals():
hwp.XHwpWindows.Active_XHwpWindow.Visible = hwp_visible
def load_hwp(hwp, path):
if not os.path.exists(path):
print("파일이 존재하지 않습니다.")
else:
hwp.Open(path, "", "")
if __name__ == "__main__":
hwp = execute_hwp()
load_hwp(hwp, r"C:\Users\karur\Desktop\한글 테스트 문서.hwp")
hwp.PutFieldText("제품명", "컴퓨터")
hwp.PutFieldText("일련번호", "2025_0001")
위 코드를 실행하면 입력했던 제품명, 일련번호 필드에 값이 입력이 됩니다.
만약 동일한 필드 이름이 여러 개 있다면
기본적으로 같은 필드에는 같은 값이 채워집니다.
아래 그림과 같이 동일한 필드 이름을 두 개 지정해 보겠습니다.
이렇게 한 다음 코드를 다시 실행하면
아래 그림과 같이 제품명이라는 동일한 필드 이름에는 같은 값이 채워집니다.
마치며
이번 블로그에서 소개한 방법은
한글 자동화를 구현하면서 가장 많이 사용하게 될 방법 중 하나입니다.
단순하면서도 쉽고 사용할 방법도 다양하므로
한글 문서에 필드 이름을 정해야 한다는 것과 그 방법
PutFieldText() 함수를 통해 값을 입력한다는 방법은
꼭 숙지해 두시는 것이 좋습니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록
'PYTHON 한글자동화' 카테고리의 다른 글
[ 한글 자동화 ] 한글 문서 동일한 필드 이름에 다른 값 입력하기, 필드에 값 입력하기(PutFieldText) - 세 번째 (1) | 2025.05.12 |
---|---|
[ 한글 자동화 ] 한글 문서 표에 필드 이름 지정하고 값 넣기, 필드에 값 입력하기(PutFieldText) - 두 번째 (0) | 2025.05.11 |
[ 한글 자동화 ] 한글(HWP) 문서 및 프로그램 종료(Quit(), Clear(), Run("FileClose"), XHwpDocuments.Close()) (0) | 2025.05.11 |
[ 한글 자동화 ] 한글 파일 저장하기, 다른 이름으로 저장하기 (0) | 2025.05.10 |
[ 한글 자동화 ] 한글 파일 불러오기, 특정 한글 파일 실행하기 (0) | 2025.05.10 |