해결된 질문
23.04.23 17:48 작성
·
834
1
제가 강사님의 블로그를 보고 만들었습니다.
제가 생각하는 방법은 표의 이름을 사진의 이름과 일치시켜서 표에 넣으려고 했는데 오류가 나네여
import win32com.client as win32
import pandas as pd
import numpy as np
import os
import pyautogui
from tkinter import Tk
from tkinter.filedialog import askopenfilenames
def 한글_시작():
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
hwp.XHwpWindows.Item(0).Visible = True
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
return hwp
file_list = os.listdir("e:/python22/inflearn_hangeul/img")
root = Tk() # 이미지선택창 열기
imagelist = askopenfilenames()
root.destroy() # 이미지선택창 닫기
BASE_DIR = imagelist[0].rsplit("/", maxsplit=1)[0] # 이미지리스트에서 경로 추출
imagelist = [i.rsplit("/", maxsplit=1)[1] for i in imagelist] # 이미지리스트에서 파일명만 남김
print(imagelist)
표_리스트 = list(set([i.split(".")[0] for i in imagelist]))
표_리스트.sort()
print(표_리스트)
hwp = 한글_시작()
hwp.Open("e:/python22/inflearn_hangeul/사업개요서_그림작성자동화서식.hwp")
hwp.Run("CopyPage")
for _ in range(9):
hwp.Run("PastePage")
for idx, content in enumerate(표_리스트):
hwp.HAction.GetDefault("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
hwp.HParameterSet.HShapeObject.ShapeTableCell.Editable = 1
hwp.HParameterSet.HShapeObject.ShapeTableCell.CellCtrlData.name = content
print(content)
hwp.HAction.Execute("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
for j, content in enumerate(표_리스트):
hwp.MoveToField(content) # 해당 필드로 이동
hwp.InsertPicture(os.path.join(BASE_DIR, f"{content}.png"), Embedded=True,
sizeoption=2) # 이미지 삽입
40번째 줄에서 오류가 나구요
pywintypes.com_error: (-2147417851, '서버에서 예외 오류가 발생했습니다.', None, None)
답변 1
1
2023. 04. 24. 19:04
for idx, content in enumerate(표_리스트):
hwp.HAction.GetDefault("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
hwp.HParameterSet.HShapeObject.ShapeTableCell.Editable = 1
hwp.HParameterSet.HShapeObject.ShapeTableCell.CellCtrlData.name = content
print(content)
hwp.HAction.Execute("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
위 코드를 아래처럼 바꿔보시기 바랍니다^^
for idx, content in enumerate(표_리스트):
shape_object = hwp.HParameterSet.HShapeObject
hwp.HAction.GetDefault("TablePropertyDialog", shape_object.HSet)
shape_object.ShapeTableCell.Editable = 1
shape_object.ShapeTableCell.CellCtrlData.name = content
print(content)
hwp.HAction.Execute("TablePropertyDialog", shape_object.HSet)