강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

bookiroad님의 프로필 이미지
bookiroad

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

[응용] 엑셀문서 값을 필드에 입력하기

[응용] 엑셀문서 값을 필드에 입력하기 질

작성

·

83

0

# 모듈 임포트
import win32com.client as win32

# 한/글 열기
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
hwp.Open(r"C:\Users\smj02\Desktop\누름틀필드.hwp")

# 엑셀 열기
excel = win32.gencache.EnsureDispatch("Excel.Application")
excel.Visible = True
wb = excel.Workbooks.Open(r"C:\Users\smj02\Desktop\취미.xlsx")
ws = wb.Worksheets(1)

# 필드삽입 함수 정의
def 필드삽입(index, value):
    field_list = ["이름", "성별", "생일", "취미"]
    for idx, field in enumerate(field_list):
        hwp.PutFieldText(f"{field}{{{{{index}}}}}", value[idx])

# 첫 쪽 복사
hwp.Run("CopyPage")

# while문 실행
row = 2
while True:
    if not ws.Cells(row, 1).Value:
        hwp.Run("DeletePage")
        break
    else:
        data = list(
            ws.Range(ws.Cells(row,1),
                     ws.Cells(row, 4)).Value[0]
        )
        data[2] = data[2].strftime("%Y년 %#m월 %#d일")
        필드삽입(row-2, data)
        hwp.Run("PastePage")
        row += 1

위 코드를 실행 시켰을때 한글 첫페이지만 아래처럼 생성되고 다음 페이지(빌, 일론 등)가 생성이 안됩니다.

이름 : 마크

성별 : 남

생일 : 1984년 5월 14일

취미 : VR

 

그대로 복붙해서 했는데 안되서 질문 남깁니다ㅠ

첫 쪽 복사와 붙여넣기가 안먹는거 같은데 이상하네요

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

bookiroad님이 제기하신 문제는 아래아한글 내에서 페이지 복사와 붙여넣기가 정상적으로 작동하지 않는 상황으로 보입니다. 이와 관련하여 몇 가지 점검 사항을 안내드리겠습니다.

  1. CopyPagePastePage 액션: 한글의 특정 버전에서는 이 액션이 정상적으로 지원되지 않을 수 있습니다. 해당 액션이 사용 가능한 버전인지 확인해야 합니다. 예를 들어, 한글 2014VP 이상의 버전에서 정상 작동할 가능성이 높습니다. 만약 오래된 버전을 사용 중이라면, 가능한 최신 버전으로 업데이트를 고려해 주세요.

  2. 한글의 실행 상태: 한글이 제대로 실행되고 있는지 확인합니다. 가끔 실행 중에 오류가 발생하여 액션이 제대로 적용되지 않을 수 있습니다. 이때는 한글을 종료하고 모든 프로세스를 다시 시작해 보시기 바랍니다.

  3. 데이터의 형식: 특정 표나 데이터의 형식이 예상과 다를 때 발생할 수 있습니다. Excel 파일의 데이터가 정상적으로 불러와지는지 확인합니다. 특히 데이터가 제대로 읽어와지고 있는지, strftime으로 변환 시 오류가 없는지 점검해 주세요.

  4. 디버깅을 위한 추가 로그: 테스트 목적으로 각 주요 단계에 print문을 삽입하여 데이터가 예상대로 처리되고 있는지 확인해볼 수 있습니다.

위 사항들을 참고하여 문제를 해결해 보시길 권장드립니다. 또한, 아래와 같은 유사한 사례에 대한 강사의 답변을 참고하시는 것도 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

bookiroad님의 프로필 이미지
bookiroad

작성한 질문수

질문하기