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

wwxxzz님의 프로필 이미지
wwxxzz

작성한 질문수

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

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

그림 삽입(특정 이름을 가진 파일 찾기) 오류

해결된 질문

작성

·

336

·

수정됨

1

#그림 삽입
for i in range(9):
    파일명1 = hwp.GetFieldText("대상{{i}}") + " (1)"
    파일명2 = hwp.GetFieldText("대상{{i}}") + " (2)"
    폴더 = r"C:\Users\USER\Desktop\한글자동화\사진\\"

    for filename in os.listdir(폴더):
        파일명 = filename.split('.')[0]
        if 파일명 == 파일명1:
            hwp.MoveToField("그림1{{i}}")
            hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
        elif 파일명 == 파일명2:
            hwp.MoveToField("그림2{{i}}")
            hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)

그림 삽입하는 코드를 만들려고 하는데요.

폴더에서 '필드텍스트 (1)', '필드텍스트 (2)' 이름을 가진 그림 파일을 각각 그림1, 그림2 필드에 삽입하려는 건데요.

for 문에서 i가 '0'일 때 한 번만 작동하고 아래처럼 오류가 납니다.

9 if 파일명 == 파일명1:

10 hwp.MoveToField("그림1{{i}}")

---> 11 hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)

12 elif 파일명 == 파일명2:

13 hwp.MoveToField("그림2{{i}}")

com_error: (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None)

 

이렇게 저렇게 수정해봤는데도 안 돼서 문의글을 올려봅니다.

혹시 되는 방법이 있을까요?

답변 2

1

일코님의 프로필 이미지
일코
지식공유자

음, 우선 아래처럼 수정해보시기 바랍니다^^
(중괄호 부분을 수정하였습니다.)

 

#그림 삽입
for i in range(9):
    파일명1 = hwp.GetFieldText(f"대상{{{{{i}}}}}") + " (1)"
    파일명2 = hwp.GetFieldText(f"대상{{{{{i}}}}}") + " (2)"
    폴더 = r"C:\Users\USER\Desktop\한글자동화\사진\\"

    for filename in os.listdir(폴더):
        파일명 = filename.split('.')[0]
        if 파일명 == 파일명1:
            hwp.MoveToField(f"그림1{{{{{i}}}}}")
            hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)
        elif 파일명 == 파일명2:
            hwp.MoveToField(f"그림2{{{{{i}}}}}")
            hwp.InsertPicture(Path = 폴더 + filename, sizeoption=3)

만약 여전히 작동이 안되면 다시 추가질문 남겨주세요ㅎㅎ

감사합니다~ 행복한 하루 되세요^^

0

안녕하세요, 인프런 AI 인턴이에요.

해당 오류는 COM 오류로 보입니다.

코드를 살펴보니 필요한 그림 파일을 찾아서 삽입하는 부분이 문제가 있는 것 같아요.

해당 오류의 원인을 찾기 위해서는 com_error 오류의 내용이 필요한데, 오류 메시지의 특정 부분이 생략되어 있습니다. 그 부분을 알 수 있다면 좀 더 정확한 도움을 드릴 수 있을 것 같아요.

또한, 코드에서 사용하는 hwp 객체가 어떤 모듈을 사용하는지 알려주셔야 합니다. 각 모듈에 따라서 메소드의 이름이나 인자의 형식이 다를 수 있어요.

추가적으로, os.listdir() 함수로 폴더 내의 파일을 읽어올 때 파일의 확장자까지 가져오지 않고, 파일명만 가져오고 있습니다. 그래서 파일명과 비교할 때 확장자까지 비교해야 할 것 같아요.

더 자세한 도움을 드리기 위해서는 코드의 전체적인 흐름과 사용하는 모듈에 대한 정보, 그리고 오류 메시지의 전체 내용을 제공해주시면 감사하겠습니다.

wwxxzz님의 프로필 이미지
wwxxzz

작성한 질문수

질문하기