해결된 질문
작성
·
29
1
파이썬 pyhwpx 이용해서 개인 매크로를 만들고 있는데 ..
막히는 부분이 있어 문의드립니다
원하는 기능은 문서 내 모든 표를 저장하고 하나씩 순회하면서 매크로를 적용시키려합니다..
근데 표 글자처럼 취급을 해제시키면
hwp.get_into_nth_table(Table_index)
이 코드로는 그 인덱스번호 표의 첫번째 셀로 가지 않았습니다..
hwp.move_to_ctrl(Table_list[Table_index])
hwp.find_ctrl()
hwp.ShapeObjTableSelCell()
아니면 이렇게 컨트롤을 넣어서 해도 안으로 안갔습니다..
hwp.select_ctrl(Table_list[Table_index])
이 함수 사용하니까 선택은 되는데 셀 전체 선택이 또 안되더라구요.ㅠㅠ 그리구 표 하나씩 넘길때마다 조판부호 같은게 켯다꺼지네용;;
글자처럼 취급하지 않은 표를 조작할 방법 알려주시면 감사하겠습니다.
답변 3
1
1
hwp.select_ctrl(Table_list[Table_index])
후 표가 선택 된다음
hwp.TableCellBlock()
hwp.TableCellBlockExtend()
hwp.TableCellBlockExtend()
이녀석이 안먹습니다..ㅠ
1
안녕하세요, 인프런 AI 인턴입니다. 이상민님.
파이썬 pyhwpx
모듈을 사용하여 문서 내의 모든 표를 저장하고 순회하면서 작업을 수행하고 싶으신 것 같습니다. 또한, “글자처럼 취급”을 해제한 표에 대한 조작을 어떻게 해야 할지 막막해하시는 듯합니다. 이에 대한 해결책을 제공할 수 있는 몇 가지 방법과 참고할 수 있는 자료를 제공해 드리겠습니다.
우선, 관련 질문에 대한 기존의 자세한 답변들을 참고하시기 바랍니다:
표 내부 진입이 안되는 경우: 이 답변에서는 읽기 전용 속성을 해제하고 Execute
메서드를 사용하여 문제가 해결되는 방법을 설명합니다.
hwp.FindCtrl() 에서 표를 한번에 선택하지 못 하는 문제: 이 답변에서는 SelectCtrlFront
와 SelectCtrlReverse
를 사용하여 문제를 해결하는 방법을 제시합니다.
다양한 방법으로 “글자처럼 취급”이 해제된 표를 조작할 수 있으니 다음 방법들을 참고해 보세요:
MovePos(2)
를 사용하여 문서의 시작으로 이동 후, FindCtrl
을 통해 표 근처로 커서를 위치시킬 수 있습니다.hwp.MovePos(2) # 문서 시작으로 이동
hwp.FindCtrl() # 컨트롤을 찾아 커서 이동
SelectCtrlFront
사용: 이 방법은 표가 아닌 다른 컨트롤이 근처에 있는 경우에도 명확히 표를 선택하는 데 도움을 줍니다.hwp.HAction.Run("SelectCtrlFront")
pyhwpx
를 사용하면 표의 첫 번째 셀로 더욱 쉽게 접근할 수 있는 방법도 있습니다.hwp.get_into_nth_table(target_index)
hwp.SelectCtrlFront()
강력한 기능들은 모두 하이퍼텍스트 설명(HTP)과 연관이 있으므로, 각 메서드에 대한 이해를 높이기 위해 모듈의 문서화를 참고하면 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
상민님, 안녕하세요?
1. hwp.select_ctrl() 이후 셀 선택방법
hwp.select_ctrl(Table_list[Table_index])
코드로 표를 선택했을 때에는표 전체가 선택된, 아래와 같은 상태가 됩니다.
이 상태에서는 셀 선택 명령어들이 작동하지 않습니다.
hwp.ShapeObjTextBoxEdit()
코드로 A1 셀에 진입하신 후에야 셀선택 코드가 작동합니다.이렇게 A1 셀에 진입하고 나면
위 코드가 작동하게 됩니다. 아래는 시연화면입니다.
2. hwp.get_into_nth_table(idx)
hwp.get_into_nth_table(idx)
메서드는글자처럼 취급이 되었든 안 되었든 해당 인덱스의 표 A1 셀로 진입해야 정상입니다ㅜ
만약 표 진입은 되는데, 엉뚱한 순서의 표로 들어가는 경우가 있기는 합니다.
글자처럼 취급이 꺼진 상태이면서, 조판부호와 표 위치가 다른 경우입니다.
(눈에 보이는 표 위치가 아니라 조판부호의 위치를 기준으로 인덱스가 매겨집니다.)
3. hwp.move_to_ctrl(idx)
질문 본문 두 번째에 보여주신
hwp.move_to_ctrl()
메서드도, 아래처럼 작동해야 합니다.제 데스크탑이나 노트북에서는 정상(?) 작동하는 듯 한데ㅜㅜㅜ
혹시 pyhwpx 모듈 업데이트가 안 되어 있는지도 모르겠습니다..(현재 0.41.2입니다.)
만약 hwp파일이 문제라면,
새 문서에서 표를 몇 개만 만들어놓은 상태에서
테스트 한 번 부탁드립니다. (위의 움짤들처럼 작동해야 합니다.)
새 문서에서는 작동하는데, 특정 문서에서만 실행이 되지 않는다면
해당 문서를 martinii.fun@지메일로 공유해주시면
원인이나 해결방법을 찾아드리도록 하겠습니다.
감사합니다.