묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
표안에 셀 정렬속성은 어떻게 하나요?
def create_word_meaning_table(hwp, words_info): rows = len(words_info) + 1 # +1 for header cols = 6 # Adding a column for the number print(f"Creating table with {rows} rows and {cols} columns") height = 0 # height 기본값 초기화 treat_as_char = 0 # 글자처럼 취급 width_type = 0 # 너비 지정(0:단에맞춤, 1:문단에맞춤, 2:임의값) height_type = 0 # 높이 지정(0:자동, 1:임의값) # Create table pset = hwp.HParameterSet.HTableCreation hwp.HAction.GetDefault("TableCreate", pset.HSet) pset.Rows = rows pset.Cols = cols pset.WidthType = width_type pset.HeightType = height_type sec_def = hwp.HParameterSet.HSecDef hwp.HAction.GetDefault("PageSetup", sec_def.HSet) total_width = (sec_def.PageDef.PaperWidth - sec_def.PageDef.LeftMargin - sec_def.PageDef.RightMargin - sec_def.PageDef.GutterLen - hwp.MiliToHwpUnit(2)) pset.WidthValue = hwp.MiliToHwpUnit(total_width) # 표 너비 if height and height_type == 1: # 표높이가 정의되어 있으면 total_height = (sec_def.PageDef.PaperHeight - sec_def.PageDef.TopMargin - sec_def.PageDef.BottomMargin - sec_def.PageDef.HeaderLen - sec_def.PageDef.FooterLen - hwp.MiliToHwpUnit(2)) pset.HeightValue = hwp.MiliToHwpUnit(height) # 표 높이 pset.CreateItemArray("RowHeight", rows) # 행 m개 생성 each_row_height = total_height - hwp.MiliToHwpUnit(rows) for i in range(rows): pset.RowHeight.SetItem(i, each_row_height) # 1열 pset.TableProperties.Height = total_height pset.CreateItemArray("ColWidth", cols) # 열 n개 생성 each_col_width = total_width - hwp.MiliToHwpUnit(3.6 * cols) for i in range(cols): pset.ColWidth.SetItem(i, each_col_width) # 1열 pset.TableProperties.Width = total_width # hwp.MiliToHwpUnit(148) # 표 너비 적용 hwp.HAction.Execute("TableCreate", pset.HSet) # 코드 실행 # 글자처럼 취급 여부 적용(treat_as_char) ctrl = hwp.CurSelectedCtrl or hwp.ParentCtrl pset = hwp.CreateSet("Table") pset.SetItem("TreatAsChar", treat_as_char) ctrl.Properties = pset hwp.Run("CloseEx") # Exit table hwp.Run("BreakPara") # Add a new line after the table표(전체)의 정렬이나 셀 정렬을 하려면 어떻게 해야할까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
Hset, Pset 질문드립니다.
hwpctrl과 action table은 어떻게 사용할지 알겠는데,pyhwpx 내부의self.hwp.HAction.Run("CopyPage")self.hwp.HAction.Run("PastePage")self.hwp.HAction.Run("DeletePage")등등은 작동원리가 어떻게 되는지 궁금합니다. HAction에 대해 이해가 없어서 알려주시면 감사하겠습니다 :)====================================
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
API를 이용해 셀필드를 생성하는 방법 있을까요?
hwp.set_field_by_bracket()메서드를 사용하여 셀필드나 누름틀 필드를 추가하고자 했지만, 어떻게 사용하는지 몰라서 질문드립니다. 제가 궁금한 것은set_field_by_bracket() 사용방법수동이 아닌 API를 이용하여 셀필드를 만드는 스크립트 입니다.감사합니다.# 해당 스크립트는 동작하지 않더군요.. hwp.HAction.GetDefault("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet) hwp.HParameterSet.HShapeObject.HSet.SetItem("ShapeType", 3) # 셀의 형태 설정 hwp.HParameterSet.HShapeObject.HSet.SetItem("ShapeCellSize", 0) # 셀 크기 설정 hwp.HParameterSet.HShapeObject.ShapeTableCell.CellCtrlData.SetItem("Name", "필드") hwp.HAction.Execute("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet)
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
다른 모든창 한글창을 종료하고 시작을하고 싶습니다.
안녕하세요 일코님일코님 덕분에 정말 많이 진척이 있었습니다.이번에 제목과 같이 매크로를 시작하고pyhwpx에서 new=True 값을 주더라도 많은 양을 작업하다보니 가끔은 new의 작동이 되지 않고 켜져있는 한글탭에 포커싱이 되는 경우가 생겨 오류가 발생하는 경우가 종종 있었습니다.물론 매크로 작동중에는 한글을 클릭하거나 커서를 이용하는 일을 하지 않았는데도 발생하는 일이여서 혹여 매크로를 시작할 때 다른 한글 창을 모두 종료 시키고 시작을 하고 싶은데 생각만큼 잘 진행이 되지 않아 질문을 남기게 되었습니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp = win32.gencache.EnsureDispatch 에러
안녕하세요?어제까지 작동하던 코드가 오늘 위 에러 메시지가 나면서 작동이 되지 않네요.예외가 발생했습니다. AttributeErrormodule 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' File "E:\Naver MYBOX\빠른동기화폴더\999_업무용주요매크로\999_한글매크로\01_일상의코딩\002_import win32com.py", line 3, in <module> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") # 한글 실행 AttributeError: module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap' GPT에게 물어 보니 com 이 손상되었다고 하면서com 캐시 재생성 하거나캐시를 재설정 및 재실행을 하라고 하는데,정말 그런건가요?위 두 코드를 넣어 보았는데, 계속해서 에러메시지가 나네요 TT
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp.open()에서 경로에서 에러가 나는거 같습니다.
한/글 문서를 불러오고, 저장하고, 닫기 이 챕터에서 에러가 hwp.open 명령어를 사용했는데경로에서 에러가나는 것 같습니다. ㅠㅜ
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
특정 범위 서체 변경하기 (글자속성변경하기)
안녕하세요? 조금씩 천천히 강의를 따라가고 있습니다 ^^ 글자속성 변경하기 챕터에서특정 범위의 서체 변경하기를 따라 해 보고 있는데요. 빈문서를 만들고,텍스트를 입력한 다음,블럭을 설정하고,charshape = True를 입력하고,실행시키면 화면에 나오는 것처럼 글자 속성이 변하지 않네요. 참고로 저는 Visual Studio Code로 작업을 하고 있습니다.추측으로는,열어 놓은 한글 파일에 접근할 수 있어야 하고블럭설정한 부분을 읽어야 하는 것 같은데,이 코드는 빠져 있는 건가요?멋진 강의 감사합니다! ^^
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
필드위치로 커서 옮기기
제가 모르는 것일수도 있는데_필드위치로 커서 옮기기 파트에서 수업파일은 어디에 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
바탕쪽, 머리말, 꼬리말, 미주 장식, 두 줄이상의 빈 줄 삭제
hwp 파일에서 바탕쪽, 머리말, 꼬리말, 미주 장식, 두 줄이상의 빈 줄을 자동으로 없애고자 강의를 수강합니다. 힌트를 얻고 싶습니다.
-
미해결직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
안녕하세요 표 생성이 막힙니다.
import win32com.client import os import shutil # 캐시 디렉토리 경로 cache_dir = os.path.join(os.getenv('LOCALAPPDATA'), 'Temp', 'gen_py') # 캐시 디렉토리 삭제 if os.path.exists(cache_dir): shutil.rmtree(cache_dir) # 캐시 재생성 및 한글 객체 생성 hwp = win32com.client.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") # 문서 시작 위치로 커서 이동 hwp.MovePos(2) # 문서 시작으로 커서 이동 # 표 생성: 행(5), 열(3) act = hwp.CreateAction("TableCreate") pset = act.CreateSet() act.GetDefault(pset) pset.SetItem("Cols", 3) pset.SetItem("Rows", 5) act.Execute(pset) 이게 실행코드고 오류는 --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\gencache.py:255, in GetModuleForCLSID(clsid) 254 try: --> 255 __import__(sub_mod_name) 256 except ImportError: ModuleNotFoundError: No module named 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0.IDHwpAction' During handling of the above exception, another exception occurred: FileNotFoundError Traceback (most recent call last) Cell In[3], line 21 18 hwp.MovePos(2) # 문서 시작으로 커서 이동 20 # 표 생성: 행(5), 열(3) ---> 21 act = hwp.CreateAction("TableCreate") 22 pset = act.CreateSet() 23 act.GetDefault(pset) File ~\AppData\Local\Temp\gen_py\3.12\7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0\IHwpObject.py:106, in IHwpObject.CreateAction(self, actidstr) 103 ret = self._oleobj_.InvokeTypes(10031, LCID, 1, (9, 0), ((8, 1),),actidstr 104 ) 105 if ret is not None: --> 106 ret = Dispatch(ret, 'CreateAction', None) 107 return ret File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\__init__.py:119, in Dispatch(dispatch, userName, resultCLSID, typeinfo, UnicodeToString, clsctx) 117 assert UnicodeToString is None, "this is deprecated and will go away" 118 dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch, userName, clsctx) --> 119 return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx) File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\__init__.py:47, in __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, UnicodeToString, clsctx, WrapperClass) 43 from . import gencache 45 # Attempt to load generated module support 46 # This may load the module, and make it available ---> 47 klass = gencache.GetClassForCLSID(resultCLSID) 48 if klass is not None: 49 return klass(dispatch) File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\gencache.py:200, in GetClassForCLSID(clsid) 198 if CLSIDToClass.HasClass(clsid): 199 return CLSIDToClass.GetClass(clsid) --> 200 mod = GetModuleForCLSID(clsid) 201 if mod is None: 202 return None File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\gencache.py:264, in GetModuleForCLSID(clsid) 261 info = demandGeneratedTypeLibraries[info] 262 from . import makepy --> 264 makepy.GenerateChildFromTypeLibSpec(sub_mod, info) 265 # Generate does an import... 266 mod = sys.modules[sub_mod_name] File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\makepy.py:377, in GenerateChildFromTypeLibSpec(child, typelibInfo, verboseLevel, progressInstance, bUnicodeToString) 374 progress.LogBeginGenerate(dir_path_name) 376 gen = genpy.Generator(typelib, info.dll, progress) --> 377 gen.generate_child(child, dir_path_name) 378 progress.SetDescription("Importing module") 379 importlib.invalidate_caches() File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\genpy.py:1363, in Generator.generate_child(self, child, dir) 1361 out_name = os.path.join(dir, an_item.python_name) + ".py" 1362 worked = False -> 1363 self.file = self.open_writer(out_name) 1364 try: 1365 if oleitem is not None: File ~\AppData\Roaming\Python\Python312\site-packages\win32com\client\genpy.py:1049, in Generator.open_writer(self, filename, encoding) 1039 def open_writer(self, filename, encoding="mbcs"): 1040 # A place to put code to open a file with the appropriate encoding. 1041 # Does *not* set self.file - just opens and returns a file. (...) 1046 # don't step on each others' toes. 1047 # Could be a classmethod one day... 1048 temp_filename = self.get_temp_filename(filename) -> 1049 return open(temp_filename, "wt", encoding=encoding) FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\lemon\\AppData\\Local\\Temp\\gen_py\\3.12\\7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0\\IDHwpAction.py.7700.temp'이렇게 나오는데 해결할 수 있는 방법 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
특정 양식의 내용을 바꾸는 자동화를 하려고 합니다. 고견을 구합니다.
안녕하세요, 일코님.강사로서 콘텐츠를 만드는 모습과 수업의 열정에 저도 한 수 배웁니다.강의를 들으면서 제 상황과 함께 몇 가지 문의드립니다. 요새 Langchain과 엮어서 hwp 파일을 자동화하는 프로그램을 만들고 있습니다.LLM 활용하여 업무를 효율화 하는 콘테스트 같은 것에 참여하는데 한글 파일을 수정해야하는 난관이 있어서 수업을 듣게 되었어요. 개발 기간이 한 달 남짓 남은 상황이라서, 질문으로 가장 효과적인 방법을 알 수 있을까하여 강사님께 조언을 요청드립니다.(hwp 5.0 파일 전체 구조를 분석할 시간이 안되네요..) 질문 3가지 드립니다. 1. 도표의 특정 부분, 내용의 특정 부분에 어떻게 문자열을 삽입할 것인가.제가 개발하고 있는 프로세스는 이렇습니다.보고서나 기획안을 작성해야 할 문장을 길게 받는다.프롬프팅을 해서 LLM에 넣어서 리턴을 받는다.대제목, 중제목, 소제목으로 포맷팅하여 HWP파일에 끼워 넣어서 export한다. 현재 FastAPI로 개발을 하고 있고, HWP 파일에 끼워 넣기 전 단계까지는 어떻게 개발이 끝난 상황입니다.대제목의 갯수, 중제목의 갯수, 소제목과 내용은 배열로 받든 JSON 형태로 받든 규격화된 형태로 받아서 제가 일일이 끼워 넣을 예정입니다. 문제는 이겁니다. 현재 제가 가지고 있는 양식에 내용을 채워 넣으려고 합니다. (양식이 이것 외에 여러 개 입니다.) 누름틀로 자동화하는 강좌도 영상과 글로 보았고, 파일 내용을 읽어오는 것도 배웠는데 회사 로고나 도표가 함께 섞여있는 복잡한 문서를 처리하기에는 예제 대비 너무 어려운 상황입니다.양식이 정해진 파일을 읽어와서,해당 문자열 위치에 다시 규격화해서 넣을 수 있는 가장 효과적인 방법을 찾고 있습니다.ㅁ, ㅇ, - 등은 제가 넣을 때 임의로 삽입해서 넣으려고 합니다. 여기에서 저 특정 부분(대제목, 중제목, 소제목, 내용 모두)의 위치에 LLM에서 받은 문자열을 규격화해서 넣으려고 하는데, 가장 좋은 방법은 무엇일까요? (폰트와 글자 크기가 전부 다름) 2. 현재 가지고 있는 hwp 파일을 쉽게 분석할 수 있는 방법? txt파일이나 마크다운 파일 같은 것은 특정 파일 포인터를 읽거나, 원래 가지고 있는 문자열을 대충 정리해서 밀어 넣으면 정리가 가능했는데, hwp 파일은 이 자체가 워낙 규격화가 특이하게 되어있어서 분석이 어렵습니다.제가 처리할 양식이 5개가 됩니다. 그 중에는 도표가 많은 것도 있고, 저 위에 있는 것 처럼 단순한 것도 있습니다.어떻게 해야지 기존의 양식을 분석하고, 해당 부분에 문자열이나 문구를 정확하게 삽입할 수 있을까요? 3. 서버에서 한글 프로그램을 띄워놓고 새롭게 생성한 파일을 서빙하는 방법 현재 한글 프로그램을 실행시킨 이후에 그 내부에서 작업을 하는 것처럼 보이는데요. (크롬을 크롬드라이버로 자동화하는 것처럼) 하나의 양식을 여러 클라이언트에서 요청 받아서 생성을 완료하고 리턴해주려면 어떤 방식이 좋을까요? 예) 누름틀로 모든 영역을 다 분리해놓은 상태에서 하나 클라이언트를 띄우고, 해당 문서에 내용을 모두 바꾼 뒤에 다른 이름으로 저장하고 해당 파일을 return? 혹시 좋은 예제나 방법이 있을까 하여 여쭤봅니다. 가장 위의 2가지 질문은 같은 계열의 질문입니다만, 혹시나하여 첫 번째 질문에 예제를 같이 넘겨드립니다. 선배 개발자님이자, 강사님의 고견 여쭙습니다. 감사합니다. 답변 기다리겠습니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
강의 내용을 따라하고 있는데 잘 안되네요. 좀 봐주세요~
1) 강의 챕터 : [응용] 폴더에 있는 한/글 파일을 모두 열기2) 질문사항 : 일단 한글파일이 있는 탐색기 폴더의 주소창에서 python을 입력해서 cmd 창을 띄운다음, 강의 내용처럼 따라하는데 import win32com.client as win32 를 입력하고 나니까 아래와 같이 에러메세지가 나오는데 왜 그런거죠?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
커뮤니티 탭을 열었을 때 글자가 너무 작아요.
1)질문에 대한 답변 내용의 캡쳐 사진이 너무 작아서 글자가 안보이는데 크게 볼 수 있는 방법이 없을까요? 2)그리고 강의에 나오는 움짤로 설명을 해주시는 걸 참고하려고 하면 빨리 지나가버리는데 움짤을 잠시 정지시켜놓고 보려고 해도 그 방법을 모르겠어요. 혹시 방법이 있을까요?
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
메시지 박스 모드 설정 관련 & PDF로 저장
안녕하세요~ 일코님무더위에 건강 잘 챙기시기 바랍니다. 메시지 박스 모드가 제가 볼떄는 Yes 아니면 No인 부분이라 생각해서hwp.SetMessageBoxMode(0x10000) 요렇게 설정을 했는데요.이렇게 설정했음에도 불구하고 왜 계속 메시지박스가 뜨는걸까요?? 메시지박스 관련 코드는 MB_MASK 0x00FFFFFF 1. 확인만 : IDOK(1) MB_OK_ODOK 0x00000001 MB_OK_MASK 0x0000000F 2. 확인/취소 (MB_OKCANCEL) : IDOK(1), IDCANCEL(2) MB_OKCANCEL_IDOK 0x00000010 MB_OKCANCEL_IDCANCEL 0x00000020 MB_OKCANCEL_MASK 0x000000F0 # 적용시 hwp.SetMessageBoxMode(0xF0) 3. 종료/재시도/무시(MB_ABORTRETRYIGNORE) : IDABORT(3), IDRETRY(4), IDIGNORE(5) MB_ABORTRETRYIGNORE_IDABORT 0x00000100 MB_ABORTRETRYIGNORE_IDRETRY 0x00000200 MB_ABORTRETRYIGNORE_IDIGNORE 0x00000400 MB_ABORTRETRYIGNORE_MASK 0x00000F00 4. 예/아니오/취소(MB_YESNOCANCEL) : IDYES(6), IDNO(7), IDCANCEL(2) MB_YESNOCANCEL_IDYES 0x00001000 MB_YESNOCANCEL_IDNO 0x00002000 MB_YESNOCANCEL_IDCANCEL 0x00004000 MB_YESNOCANCEL_MASK 0x0000F000 5. 예/아니오(MB_YESNO) : IDYES(6), IDNO(7) MB_YESNOCANCEL_IDYES 0x00010000 MB_YESNOCANCEL_IDNO 0x00020000 MB_YESNOCANCEL_MASK 0x000F0000 6. 재시도/취소(MB_RETRYCANCEL) : IDRETRY(4), IDCANCEL(2) MB_RETRYCANCEL_IDRETRY 0x00100000 MB_RETRYCANCEL_IDCANCEL 0x00200000 MB_RETRYCANCEL_MASK 0x00F00000이렇게 정리해놨는데요.저는 5번케이스라고 생각했는데 2번 케이스에 해당하는걸까요?케이스를 구분하는건 어떤 기준인지 궁금합니다! 그리고 두번째로는, hwp를 수정하고 저장한뒤, PDF로도 추가로 저장하고자 하여아래와 같이 코드를 작성해 보았는데요.# hwp 저장 hwp.save_as(save_path_문제지) # pdf 로 저장하기 위해서 경로 할당 파일이름, _ = os.path.splitext(os.path.basename(save_path_문제지)) 저장경로 = os.path.join(os.path.dirname(save_path_문제지), 파일이름 + ".pdf") # pdf로 저장하기 hwp.SaveAs(Path=os.path.join(os.path.dirname(save_path_문제지), 파일이름 + ".pdf"), Format="PDF") 그런데 터미널에 아래와 같은 오류가 뜨네요... TypeError: Hwp.SaveAs() got an unexpected keyword argument 'Path' 이전에는 잘작동했떤 코드같은데 왜 안되는 걸까요? 잘부탁드립니다!! 늘 감사합니다.!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
pyinstaller 에러
pyinstaller 사용시 에러4900 WARNING: Library not found: could not resolve 'api-ms-win-crt-string-l1-1-0.dll', dependency of 'C:\\Users\\***\\AppData\\Local\\Programs\\Python\\Python312\\DLLs\\tcl86t.dll'. 명령 프로프트에서 실행해도4524 WARNING: Library not found: could not resolve 'api-ms-win-crt-string-l1-1-0.dll', dependency of 'C:\\Users\\이종익\\AppData\\Local\\Programs\\Python\\Python312\\DLLs\\tcl86t.dll'. 해결 방법을 알고 싶어요
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
음 Action에 없는 내용들은 어떻게 활용해야할지 질문드립니다.
현재 문제자동적으로 여러개의 선택상자를 입력하고어떤것이 체크되었는지 확인하여 리턴할 것을 정해야하는 함수를 구현하려 합니다. 1번, 3번이 선택 되었다면 1, 3을 리턴하는 방식을 구현하려 했습니다. 제가 질문드린 내용을 구현하려면[HwpAutomation.hwp 내부 사진]다음사진에서 IHwpObject - IXHwpDocuments - IXHwpFormCheckButtons의IXHwpFormCheckButton:양식 개체 체크 버튼 오브젝트에서caption값을 수정하는 방법value 값을 리턴하는 것 여기에서 사실 XHwpDocuments.XHwpFormCheckButtons를 해야한다고 생각했는데 안되는거 같아서 혹여 이 부분을 참고하여서 개발을 하려면 어떻게 이해를 해야할까요 ㅠㅠ
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
hwp.TableCellBlcok() 코드 미작동
안녕하세요 일코님더위에 건강 잘 챙기시기 바랍니다. 일코님께서 제공해주신 코드인데,, 어제까지는 잘 작동하는데 오늘 다시 실행해보니 >>> hwp = Hwp().hwp >>> hwp.MoveToField("3") True >>> hwp.TableCellBlock() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\samsung-user\anaconda3\Lib\site-packages\win32com\client\__init__.py", line 580, in __getattr__ raise AttributeError( AttributeError: '<win32com.gen_py.HwpObject 1.0 Type Library.IHwpObject instance at 0x1750723382032>' object has no attribute 'TableCellBlock' hwp.TableCellBlock() 코드가 작동하지를 않네요 ㅠㅠ왜이런 걸까요? hwp.TableCellBlock() hwp.TableCellBlockExtend() hwp.TableColEnd() hwp.MoveToField("3") 까지는 올바르게 작동을 하는데,, 위의 테이블 관련 코드가 다 작동하지 않네요.감사합니다 ^^
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
표에서 특정한 값 찾기 문제
순번 5번, 8번의 8번째 칸의 모습처럼, 줄나누기후 같은 숫자(12)와 O를 넣는 자동화를 하고 싶습니다.즉,1. 일정한 순번을 리스트를 통해 나열하면 EX) [5, 8, 10-2, 12 ....]2. 그 값이 있는 셀을 찾은 후 오른쪽으로 이동, 줄나누기, 셀에 값입력 이런 작업을 자동화 하고 싶은 것입니다. 2번 작업은 일상의 코딩님 강의와 블로그를 통해 해결할 수 있을 거 같긴한데,1번 작업을 어떻게 처리할지 도저히 감히 잡히지 않습니다.(블로그를 보면 찾기 명령어는 자동화에 사용하지 않는 것 같고,hwp.find()를 이용하는 것도 감이 잡히지 않습니다.) 저런식으로 단순히 1,2,3으로 진행되는 것이 아니고, 중간 중간 규칙성 없이 가지번호(10-1,10-2)가 등장합니다 ㅠ또한 숫자가 여러 열에 존재하고 있어서 1열(즉 순번열)에 있는 숫자만을 찾아야 한다는 문제도 있습니다. 자동화가 필요한 이유가 저런 식의 순번이 5천개가 넘어서 반드시 필요합니다.도와주세요!!!
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
파이썬으로 작업하기 유리한 한글버젼/맥에서 사용
파이썬으로 작업하기 더 유리한 한글버젼이 있을까요? 작업 속도가 빠르다던지맥에서 파이썬으로 아래한글을 다룰 방법이 있을까요?미리 감사드립니다.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
셀필드 코드로 수정하기
안녕하세요 일코님. 늘 많은 도움 감사합니다.셀필드명을 표에 차례대로 부여하는데,매크로 녹화를 이용해서아래와 같이 코드를 짜보았습니다.hwp.move_to_field("답안") index = 1 while hwp.TableLowerCell(): hwp.HAction.Run("TableCellBlock"); hwp.HAction.GetDefault("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet); hwp.HParameterSet.HShapeObject.ShapeTableCell.CellCtrlData.Name = f"{index}" hwp.HAction.Execute("TablePropertyDialog", hwp.HParameterSet.HShapeObject.HSet) hwp.Run("Cancle") index += 1 그런데 이렇게 실행하였을 때,AttributeError: '<win32com.gen_py.HwpObject 1.0 Type Library.HCtrlData instance at 0x2683750010768>' object has no attribute 'Name' 위와 같이 오류가 나는데요..매크로 스크립트를 잘 복붙한거 같은데 어떻게 수정할 수 있을까요?감사합니다!