월 14,850원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
hwp.InitScan(Range=0x00ff).. pywintypes.com_error: (-2147352562, '매개 변수의 개수가 잘못되었습니다.', None, None)
모듈화를 위해 다음과 같이 코드를 정리했습니다. import win32com.client as win32 import os from tkinter.filedialog import askopenfilenames, askopenfilename from tkinter import Tk def select_excel(): win = Tk() win.withdraw() xlsx = askopenfilename( title = "엑셀파일을 고르세요", initialdir = os.getcwd(), filetypes = [("엑셀파일", "*.xlsx *xls")] ) win.quit() return xlsx def select_hwp(): win = Tk() win.withdraw() hwp_file_list = askopenfilenames( title ="취합할 아래아 파일을 고르시오", initialdir=os.getcwd(), filetypes=[("아래아한글파일", "*.hwp *.hwpx")]) win.quit() return hwp_file_list def open_hwp(file): hwp = win32.dynamic.Dispatch("HWPFrame.HwpObject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") hwp.Open(filename=file, Format="", arg="") # 한/글 파일 열기 return hwp def open_excel(xlsx): excel = win32.dynamic.Dispatch("Excel.Application") excel.DisplayAlerts = False wb = excel.Workbooks.Open(xlsx) ws = wb.Worksheets(1) excel.Visible = True return excel, ws, wb def get_text(): hwp.InitScan(Range=0xff) # 선택한 셀의 문자를 추출하는 방법.. 꼭!! Range=0xff를 빼먹지마라! total_text ="" state = 2 while state not in [0,1]: state, text =hwp.GetText() total_text += text hwp.ReleaseScan() return total_text def change_dir(path): os.chdir(path.rsplit("/", maxsplit=1)[0]) # 파일경로로 콘솔 이동 if __name__ == "__main__": excel_file = select_excel() change_dir(excel_file) excel, wb, ws = open_excel(excel_file) hwp_file_list = select_hwp() for file in hwp_file_list: hwp = open_hwp(file) ctrl = hwp.HeadCtrl while ctrl: if ctrl.CtrlID == 'tbl': hwp.SetPosBySet(ctrl.GetAnchorPos(0)) break else: ctrl = ctrl.Next hwp.FindCtrl() hwp.Run("ShapeObjTableSelCell") contents = [] contents.append(get_text()) while hwp.HAction.Run("TableRightCell"): contents.append(get_text()) 과제명 = contents[1] 신청부서 = contents[3].split("\r\n")[0].replace("/", "") 과제담당관 = contents[3].split("\r\n")[1] 담당공무원 = contents[5] 연구방식_ =["위탁형", "공동연구형", "자문형"] 연구방식 = [ i.strip() for i in contents[7].split("(")[1:]] for idx, text in enumerate(연구방식): if not text.startswith(")"): 연구방식 = 연구방식_[idx] 연구시작 = contents[9].split("~")[0].strip() 연구종료 = contents[9].split("~")[1].split('(')[0].strip() 연구기간 = contents[9].split("~")[1].split('(')[1].replace(")", "") 예산항목_ = ["포괄", "사업별"] 예산항목 = [i.strip() for i in contents[12].split("(")[1:]] for idx, text in enumerate(예산항목): if text.startswith(")"): pass else: 예산항목 = 예산항목_[idx] 예상금액 = contents[15] 연구필요성 = contents[17] 중복검토방법 = contents[21].split("\r\n")[1].replace("-", "").strip() 중복성여부_ = ["있다", "없다"] 중복성여부 = [ i.strip() for i in contents[21].split("\r\n")[2].split("(")[1:]] for idx, text in enumerate(중복성여부): if not text.startswith(")"): 중복성여부 = 중복성여부_[idx] 연구내용 = contents[23] 연구결과활용방안 = contents[25] 입력행 = len(ws.UsedRange()) + 1 ws.Range(ws.Cells(입력행, 1), ws.Cells(입력행, 15)).Value = (과제명, 신청부서, 과제담당관, 담당공무원, 연구방식, 연구시작, 연구종료, 연구기간, 예산항목, 예상금액, 연구필요성, 중복검토방법, 중복성여부, 연구내용, 연구결과활용방안) wb.Save() hwp.Quit() 하지만 코드를 실행하니 다음과 같은 에러가 발생했습니다.------------------------------------------------------ Traceback (most recent call last): File "C:\Users\user\Desktop\Pyton_hwp_auto\pyinstallertest.py", line 74, in <module> contents.append(get_text()) ^^^^^^^^^^ File "C:\Users\user\Desktop\Pyton_hwp_auto\pyinstallertest.py", line 43, in get_text hwp.InitScan(Range=0x00ff) # 선택한 셀의 문자를 추출하는 방법.. 꼭!! Range=0xff를 빼먹지마라! ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<COMObject HWPFrame.HwpObject>", line 3, in InitScanpywintypes.com_error: (-2147352562, '매개 변수의 개수가 잘못되었습니다.', None, None)------------------------------------------------------ 무엇이 잘못된걸까요?
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
InsertPicture()메서드 질문
hwp.InsertPicture(경로, sizeoption)에서 경로를 png 파일은 안되나요? jpg만 인식이 되는거 같아서 질문남깁니다
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
print(hwp.GetFieldList()) 결과값에 구분자가 x02가 아닌 값이 나옵니다.
안녕하세요. 질문올립니다. 문서의 필드목록 및 필드 값 취득하기에서 print(hwp.GetFieldList())를 실행하면 예제의 이름\x02성별\x02생일\x02취미\x02가 아니라이름성별생일취미이름성별생일취미이름성별생일취미이름성별생일취미이름성별생일취미이름성별생일취미""이 구분자로 붙어서 나옵니다.구분자는 컴퓨터 환경마다 다른 건가요?
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
이미지를 글자와 겹쳐서 삽입하는 방법
좋은 강의 감사드립니다.한 가지 질문이 있어 문의드립니다. 한/글 파일에 사용인감 이미지를 첨부하고 싶은데요현재까지는 표를 만들어서 특정 셀에 이미지를 입력하는 방법까지 구현해봤습니다.그런데 한글 서식에서는 보통 "(서명)" 글자와 겹쳐서 이미지를 삽입하는데요이와 같이 이미지를 글자와 겹쳐서 삽입하는 것도 가능할까요?간단한 Tip이나 예제가 있으면 부탁드립니다.감사합니다.
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
다단 공백감지 질문드립니다.
하루에 2개를 질문하기 살짝 망설였습니다만주제가 너무 다르다 생각하여 따로 질문드립니다.다단으로 내용이 입력되어 있는 상황에서위와 같이단 위 부분에 ^n가 있는 경우 이를 제거하려합니다.하지만 단1의 아래의 ^n까지 제거하게 된다면 n. 부분이 단1로 넘어가 지져분해질 수도 있을거 같아서'별' 부분만을 감지하고 제거할 수 있을지 질문드려봅니다.
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
InsertPicture 관련 질문입니다.
매개변수(Parameters)path삽입할 이미지 파일, URL 사용 가능 (ver:0x05050111)embeded이미지 파일을 문서 내에 포함할지 여부 (True/False). 생략하면 True HwpCtrl API에서 이미지를 삽입할 경우 url이 사용가능하다고 하는데기본적으로 컴퓨터 내부의 파일을 불러오는 InsertPicture는 잘 작동하지만 혹시 url (외부 웹페이지)로 작업할 경우 다른 조치가 있어야하는지 질문드립니다.
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
표너비 비율대로 키우거나 줄일 수 있는지요?
정부청사나 연구원의 보고서 등을 한글로 편집하는 편집디자이너입니다.반복되는 작업이 많아 일을 자동화해보고자 수강신청를 했어요.일코님~ 이 작업도 가능한지 봐주세요원고가 A4로 오구 인쇄는 16절(190*260)로 할 경우(반대의 경우도 많아요ㅜ) 본문 사이즈를 조절하면 종이가 작아져서 표를 하나하나 줄여야하는대요.이걸 본문사이즈에 맞춰서 표너비의 비율대로 줄이거나 키울수가 있을까요??일코님~ 도와주세요~~
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
엑셀로 시험지를 만드는 루틴
(수능) 수학시험지를 읽어서 개별문항을 저장하고 시험지를 만드는 섹션을 보았는데요.반대로 엑셀에서 데이터를 받아와서 (문제, 지문, 보기, 해설) 한글 파일에 정의된 스타일로 써넣는 코드를 어디서 부터 시작해야 할까요?
- 미해결움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
pyinstaller로 실행파일 생성 후 다른 PC에서 실행시 문의 드립니다.~
안녕하세요~ 문의 드립니다~ pyinstaller로 실행파일 생성후 다른 PC에서 실행할 때 아래와 같은 메시지가 나오며 안됩니다. 해결방법이 없을까요? Traceback (most recent call last): File "pyhwpx.py", line 6237, in register_regedit File "subprocess.py", line 466, in check_output File "subprocess.py", line 548, in run File "subprocess.py", line 1026, in init File "subprocess.py", line 1538, in executechildFileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다During handling of the above exception, another exception occurred:Traceback (most recent call last): File "hwptopdfgui.py", line 29, in <module> File "pyhwpx.py", line 143, in init File "pyhwpx.py", line 6195, in register_module File "pyhwpx.py", line 6241, in register_regedit File "subprocess.py", line 466, in check_output File "subprocess.py", line 548, in run File "subprocess.py", line 1026, in init File "subprocess.py", line 1538, in executechildFileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
여러 페이지를 복사하고 붙여넣기를 하려고 합니다. 어떻게 해야 할까요?
엑셀문서 값을 필드에 입력하기 챕터에서hwp.Run("Copy Page"), hwp.Run("PastePage") 명령어는 첫번째 한 페이지를 복사해서 붙여넣기를 하는 명령어인데요 복사할 페이지 2~3페이지가 되는 경우에도 위 명령어를 이용할 수 있나요?답변부탁드립니다.
- 미해결움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
2가지 문제가 있습니다.
필두속성 수정하기 파티에서예제파일이 다운이 되지 않습니다."3. CreateField ..."에서 자꾸 제일 처음 셀이 건너뛰어집니다.
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
미주 지우기 질문입니다.
1번사진2번 사진일코님 안녕하세요1번 사진과 같은 내용의 문서에서일종의 작업이 끝난 뒤에 2번 사진의 역할을 하려합니다..1번의 누름틀로 select=True를 통해 미주를 제거하려 하였지만 매크로로 이런부분이 제거가 되어야하는데 정상적으로 작동하지 않습니다.혹시 선택된 영역의 미주를 제거하는 방법이 있을까요?오토메이션에서 설명해주신 부분변수로 지정해서 빼보는 것까지 2번 사진에 해보았지만 차도가 없어서 질문드려봅니다
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
table_to_df(startrow=n) 수행시 에러가 납니다.
안녕하세요 ~ 문의 드립니다.~ pyhwpx 버전 업데이트(0.10.29) 이후 hwp.table_to_df(startrow=2) 코드 부분에서 아래와 같은 에러가 납니다. 업데이트 하기 전에는 실행되었습니다. 음…잘 되었던 부분인데~ 혹시 변경된 부분이 있는지요? ^^ ~~~site-packages\pyhwpx.py", line 2260, in table_to_df arr = np.array(self.get_selected_text(as_="list")).reshape(rows, -1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ValueError: cannot reshape array of size 2 into shape (5,newaxis)아래와 같은 표들을 데이터프레임으로 저장하는 로직 이었습니다. 설치된 패키지 버전 정보는 아래와 같습니다. Name: pyhwpxVersion: 0.10.29
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
exe 배포 파일 코드 작동 안함
안녕하십니까 항상 도움 많이 받고 있습니다.강의를 들으면서 아래와 같이 코드를 작성하였고(정상 작동함)배포 파일을 만들어서 실행하여 보니, 특성 코드가 작동이 안됩니다. import tkinter as tkfrom tkinter import filedialogimport win32com.client as win32from pyhwpx import Hwphwp = Hwp()excel = win32.gencache.EnsureDispatch("Excel.Application")excel.Visible = False# 한/글 파일 불러오기def open_hwp_file(): file_path = filedialog.askopenfilename(initialdir="C:/", title="Select HWP File", filetypes=(("HWP files", "*.hwp"), ("all files", "*.*"))) if file_path: hwp.Open(file_path)# 엑셀 파일 불러오기 def open_excel_file(): file_path = filedialog.askopenfilename(initialdir="C:/", title="Select Excel File", filetypes=(("Excel files", "*.xlsx;*.xlsm"), ("all files", "*.*"))) if file_path: wb = excel.Workbooks.Open(file_path)def process_excel(): wb = excel.ActiveWorkbook # 불러온 엑셀파일을 wb로 지정 ws = wb.Worksheets(3) # wb의 3번째 시트를 ws로 지정 xlsx_values = [list(i) for i in ws.UsedRange()] for idx, val in enumerate(xlsx_values): if idx: xlsx_values[idx][0] = xlsx_values[idx][0].strftime("%Y. %#m. %#d.") for idx, val in enumerate(xlsx_values[1:]): # hwp.get_field_list()로 삽입된 필드명 확인 후, 상황에 맞게 아래 코드의 필드명 수정 hwp.PutFieldText(f"보도일자{{{{{idx}}}}}\x02기사1{{{{{idx}}}}}\x02기사2{{{{{idx}}}}}\x02기사3{{{{{idx}}}}}\x02기사4{{{{{idx}}}}}\x02기사5{{{{{idx}}}}}\x02기사6{{{{{idx}}}}}\x02기사7{{{{{idx}}}}}\x02기사8{{{{{idx}}}}}\x02기사9{{{{{idx}}}}}\x02기사10{{{{{idx}}}}}\x02기사11{{{{{idx}}}}}\x02기사12{{{{{idx}}}}}\x02기사13{{{{{idx}}}}}\x02기사14{{{{{idx}}}}}\x02기사15{{{{{idx}}}}}\x02기사16{{{{{idx}}}}}\x02기사17{{{{{idx}}}}}\x02기사18{{{{{idx}}}}}\x02기사19{{{{{idx}}}}}\x02기사20{{{{{idx}}}}}\x02기사21{{{{{idx}}}}}\x02기사22{{{{{idx}}}}}\x02기사23{{{{{idx}}}}}\x02기사24{{{{{idx}}}}}\x02기사25{{{{{idx}}}}}\x02기사26{{{{{idx}}}}}\x02기사27{{{{{idx}}}}}\x02기사28{{{{{idx}}}}}\x02기사29{{{{{idx}}}}}\x02기사30{{{{{idx}}}}}", "\x02".join(val))def save_as(): hwp.save_as("보도자료 배포용(취합본).hwp") root = tk.Tk()root.title("보도자료 취합(배포용)")button_style = {"font": ("Arial", 15), "padx": 20, "pady": 10}open_hwp_button = tk.Button(root, text="한글) 파일 열기", command=open_hwp_file, **button_style)open_hwp_button.pack()open_excel_button = tk.Button(root, text="엑셀) 파일 열기", command=open_excel_file, **button_style)open_excel_button.pack()process_excel_button = tk.Button(root, text=" 취합 하기 ", command=process_excel, fg="blue", font=("Arial", 15, "bold"), padx=20, pady=10)process_excel_button.pack()process_excel_button = tk.Button(root, text="다른 이름 저장", command=save_as, ** button_style)process_excel_button.pack()root.mainloop() 위 코드에서 " 취합하기" 버튼을 누르면 엑셀에 있는 값들이 한글 문서 필드로 입력이 안됩니다. (아무 변화 없음)* 파일 열기나 다른 이름으로 저장하는 버튼을 누르면 정상 작동합니다. 취합하는 것만 안되는 이유가 뭘까요? 항상 친절히 답변 남겨 주셔서 너무 감사드립니다.
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
join(val) 코드 해석
챕터명: [응용] 엑셀문서 값을 필드에 입력하기# 셀범위 값 전부 읽어오기 xlsx_values = [list(i) for i in ws.UsedRange()] # 날짜 문자열 수정하기 for idx, val in enumerate(xlsx_values): if idx: # [0]은 제목이므로 생일 수정안함 xlsx_values[idx][2] = xlsx_values[idx][2].strftime("%Y년 %#m월 %#d일") print(xlsx_values) # >>> [['이름', '성별', '생일', '취미'], # ... ['마크', '남', '1984년 5월 14일', 'VR'], # ... ['빌', '남', '1955년 10월 28일', '기부'], # ... ['일론', '남', '1971년 6월 28일', '트위터'], # ... ['제프', '남', '1964년 1월 12일', '독서'], # ... ['리사', '여', '1969년 11월 7일', '게임'], # ... ['슬아', '여', '1983년 6월 16일', '쇼핑']] # 1페이지 복사해 둠 hwp.Run("CopyPage") for idx, val in enumerate(xlsx_values[1:]): if idx: # idx가 0인 경우는 제외 hwp.Run("PastePage") # 페이지 붙여넣기 hwp.PutFieldText(f"이름{{{{{idx}}}}}\x02성별{{{{{idx}}}}}\x02생일{{{{{idx}}}}}\x02취미{{{{{idx}}}}}", "\x02".join(val)) # 4개의 값을 한 번에 배치삽입하는 방법. "\x02"로 구분함.위 코드에서 hwp.PutFieldText(f"이름{{{{{idx}}}}}\x02성별{{{{{idx}}}}}\x02생일{{{{{idx}}}}}\x02취미{{{{{idx}}}}}", "\x02".join(val))이 부분이 이해가 잘 안됩니다. hwp.PutFieldText("이름", "홍길동") 이게 기본 형태로 알고 있는데, 저건 어떤 형태인가요?? 해석이 안되네요idx가 1인 경우에 대입하면, hwp.PutFieldText("이름{{1}} 성명{{1}} 생일{{1}} 취미{{1}}") 이렇게 있는데, 이름{{1}} 뒤에 1을 더하는 식으로 각 필드명에 적용한다는 건가요?? 그리고 마지막 join(val)은 무슨 역할인가요???
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
바탕쪽 텍스트추출, 표안의 사각형 안의 텍스트 추출, 표안의 글머리기호있는 텍스트 모두 추출
안녕하세요. 강의를 여러번 보면서 많은 도움을 얻고 있습니다. 감사합니다~몇가지 질문 드립니다.1. 바탕쪽이 표로 만들어져 있는 경우 바탕쪽에 있는 표의 셀안에 있는 텍스트는 어떻게 가져 올 수 있을까요? 2. 그리고 본문의 표의 셀내에 또 사각형을 만든 다음에 텍스트를 입력해 놓은 경우, 표의 셀안의 사각형 안의 텍스트를 가져오려면 어떻게 해야할까요? 3. 마지막으로 표안에 문단번호모양설정을 해서 글머리 기호 1. 2. 3.,,, 이런식으로 여러 줄이 있는 경우,hwp.InitScan(Range=0xff), GetText를 이용하면 제일 위의 한 줄만 추출 되는 데 전체 텍스트를 다 가져 오려면 어떻게 해야할까요?
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
exe파일로 추출하려고 했는데 오류가 떠요
선생님 또 질문하러 왔습니다 ㅠㅠpyinstaller로 exe파일 추출하는걸 따라하고 있었는데요... openpycl이 import 되지 않았다고 떠서 import 문도 따로 넣었거든요.그랬더니 이제는 openpyxl.cell_writer 모듈이 없다고 뜨는데 여기부터는 어떻게 해결해야하는지 잘 모르겠네요.구글 검색했더니 해결방법이 되게 여러가지가 뜨던데그중에 저에게 맞는 해결법은 없었습니다..:(혹시 선생님께서도 이런 오류를 겪으신 적이 있을까요?
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
한글 문서에 표 안에 있는 그림을 별도 파일(jpg, png등등) 저장하려면 어떻게 해야 할까요?
안녕하세요~ ^^ 강의를 통해 많은 도움을 받고 있습니다. ~다름이 아니라 ~ 한글 문서 표 안에 그림이 있는 것을 별도의 파일로 저장하는 파이썬 코드는 어떻게 해야 할까요~? “그림 삽입하기” 강의를 보고 나서 그 반대인 경우를 생각해봤습니다. 그림 ctrl 개체 선택 후 임의의 파일로 저장하는 방법이 궁금합니다. 표를 순회화면서 그림 개체를 발견하면 일정한 규칙을 정하고 파일을 저장하고 싶습니다.~
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
8강 표 복사가 안되네요
8강을 보고 있는데 표 복사 붙여넣기가 안되네요ceil을 안쓰고 바로 그냥 4로 적어봤는데 그래도 안됩니다. 표 테두리를 선택한채 멈춰 있네요왜그럴까요? 한글은 2020버전입니다.복사할표개수 = 4 #표진입 hwp.get_into_nth_table(-1) #표선택 hwp.SelectCtrlFront() #표복사 붙여넣기 hwp.copy() for i in range(복사할표개수): hwp.paste()
- 해결됨움짤로 빠르게 배우는 파이썬-아래아한글 자동화 레시피
쪽번호 매기는 명령어도 있을까요?
안녕하세요!pyhwpx를 이용해서 자동화를 꿈꾸고 있는데,블로그에 적어주신 메소드에는 없는 것 같아서 한번 여쭤봅니다. 한글 쪽번호 매기기 기능도 명령어가 있을까요?그냥 1도 시작하는게 아닌, 제가 원하는 숫자로 시작하게 만들고 싶습니다. 여러 한글 파일에 쪽번호를 매기는데,그 파일들의 페이지수에 따라서 달리 페이지를 매겨야해서요!페이지는 일단 PageCount로 세면 될것 같은데hwp.Run("PageNumPos")로는 자동으로 제가 센 페이지를 대입할 수는 없겠더라고요. 혹시 좋은 방법이 있을까요?언제나 감사드립니다.