inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

질문을 남겨주세요.

표 찾아가기 도와주세요...ㅠㅠ

해결된 질문

285

이상민

작성한 질문수 2

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])

이 함수 사용하니까 선택은 되는데 셀 전체 선택이 또 안되더라구요.ㅠㅠ 그리구 표 하나씩 넘길때마다 조판부호 같은게 켯다꺼지네용;;

 

글자처럼 취급하지 않은 표를 조작할 방법 알려주시면 감사하겠습니다.

 

 

python 한컴오피스

답변 3

1

이상민

감사합니다! 조판부호 기준인줄몰랐네요 2002년형 조판부호 키니깐 깔끔하게 진행될것같습니다!!

혼자 좀 해보다가 잘안되는거 있을때 또 문의하겠습니다. 감사합니다

1

이상민

hwp.select_ctrl(Table_list[Table_index])

후 표가 선택 된다음

hwp.TableCellBlock() 
hwp.TableCellBlockExtend()
hwp.TableCellBlockExtend()

이녀석이 안먹습니다..ㅠ

2

일코

상민님, 안녕하세요?

1. hwp.select_ctrl() 이후 셀 선택방법

hwp.select_ctrl(Table_list[Table_index]) 코드로 표를 선택했을 때에는

표 전체가 선택된, 아래와 같은 상태가 됩니다.

{97C65614-9EE9-4B43-8639-C801766DD083}.png

이 상태에서는 셀 선택 명령어들이 작동하지 않습니다.

hwp.ShapeObjTextBoxEdit() 코드로 A1 셀에 진입하신 후에야 셀선택 코드가 작동합니다.

참고로 hwp.ShapeObjTextBoxEdit() 대신
hwp.ShapeObjTableSelCell() 코드를 실행하면, A1셀 블록선택 상태가 됩니다.

 

이렇게 A1 셀에 진입하고 나면

hwp.TableCellBlock() 
hwp.TableCellBlockExtend()
hwp.TableCellBlockExtend()

위 코드가 작동하게 됩니다. 아래는 시연화면입니다.

녹화_2024_12_05_20_53_01_5.gif

 

2. hwp.get_into_nth_table(idx)

hwp.get_into_nth_table(idx) 메서드는

글자처럼 취급이 되었든 안 되었든 해당 인덱스의 표 A1 셀로 진입해야 정상입니다ㅜ

만약 표 진입은 되는데, 엉뚱한 순서의 표로 들어가는 경우가 있기는 합니다.

글자처럼 취급이 꺼진 상태이면서, 조판부호와 표 위치가 다른 경우입니다.

(눈에 보이는 표 위치가 아니라 조판부호의 위치를 기준으로 인덱스가 매겨집니다.)

녹화_2024_12_05_20_32_24_580.gif

 

3. hwp.move_to_ctrl(idx)

질문 본문 두 번째에 보여주신 hwp.move_to_ctrl() 메서드도, 아래처럼 작동해야 합니다.

녹화_2024_12_05_20_34_27_601.gif
Table_list = [i for i in hwp.ctrl_list if i.UserDesc == "표"]
Table_index = 2

hwp.move_to_ctrl(Table_list[Table_index])
hwp.find_ctrl()
hwp.ShapeObjTableSelCell()  # A1 셀을 선택한 상태가 됨

조판부호가 잠시 켜지는 이유도
실은 "글자처럼 취급"이 해제된 표들을 정확하게 선택하기 위한 목적입니다..

 

제 데스크탑이나 노트북에서는 정상(?) 작동하는 듯 한데ㅜㅜㅜ
혹시 pyhwpx 모듈 업데이트가 안 되어 있는지도 모르겠습니다..(현재 0.41.2입니다.)

만약 hwp파일이 문제라면,
새 문서에서 표를 몇 개만 만들어놓은 상태에서
테스트 한 번 부탁드립니다. (위의 움짤들처럼 작동해야 합니다.)

 

새 문서에서는 작동하는데, 특정 문서에서만 실행이 되지 않는다면
해당 문서를 martinii.fun@지메일로 공유해주시면
원인이나 해결방법을 찾아드리도록 하겠습니다.

 

감사합니다.

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이상민님.

파이썬 pyhwpx 모듈을 사용하여 문서 내의 모든 표를 저장하고 순회하면서 작업을 수행하고 싶으신 것 같습니다. 또한, “글자처럼 취급”을 해제한 표에 대한 조작을 어떻게 해야 할지 막막해하시는 듯합니다. 이에 대한 해결책을 제공할 수 있는 몇 가지 방법과 참고할 수 있는 자료를 제공해 드리겠습니다.

우선, 관련 질문에 대한 기존의 자세한 답변들을 참고하시기 바랍니다:

  1. 표 내부 진입이 안되는 경우: 이 답변에서는 읽기 전용 속성을 해제하고 Execute 메서드를 사용하여 문제가 해결되는 방법을 설명합니다.

  2. hwp.FindCtrl() 에서 표를 한번에 선택하지 못 하는 문제: 이 답변에서는 SelectCtrlFrontSelectCtrlReverse를 사용하여 문제를 해결하는 방법을 제시합니다.

다양한 방법으로 “글자처럼 취급”이 해제된 표를 조작할 수 있으니 다음 방법들을 참고해 보세요:

해결 방법 요약:

  1. 커서를 표 근처로 이동시키기: MovePos(2)를 사용하여 문서의 시작으로 이동 후, FindCtrl을 통해 표 근처로 커서를 위치시킬 수 있습니다.
hwp.MovePos(2)  # 문서 시작으로 이동
hwp.FindCtrl()  # 컨트롤을 찾아 커서 이동
  1. 표 선택을 위해 SelectCtrlFront 사용: 이 방법은 표가 아닌 다른 컨트롤이 근처에 있는 경우에도 명확히 표를 선택하는 데 도움을 줍니다.
hwp.HAction.Run("SelectCtrlFront")
  1. pyhwpx 모듈을 통한 표 선택: pyhwpx를 사용하면 표의 첫 번째 셀로 더욱 쉽게 접근할 수 있는 방법도 있습니다.
hwp.get_into_nth_table(target_index)
hwp.SelectCtrlFront()

강력한 기능들은 모두 하이퍼텍스트 설명(HTP)과 연관이 있으므로, 각 메서드에 대한 이해를 높이기 위해 모듈의 문서화를 참고하면 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?

0

72

1

hwp 병렬 작업시 클립보드 충돌문제

0

55

1

본문을 각주로 내리는 법

1

91

1

한글 자동화 삽도 삽입!!

1

380

2

한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ

1

230

2

빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다

1

116

2

사무실 컴퓨터ㅠ

0

93

2

글자입력 여러번 실행기

0

66

1

현재 커서 문단에 아무런 내용이 없는지 확인하기

1

99

1

특정 스타일을 찾아 이동하는 방법

1

161

2

한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?

1

1091

1

win32com 으로 hwp 문자열 검색하기 문의

1

218

2

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

1

121

1

표 병합하기 관련

0

140

0

메타태그 삽입 자동화

0

190

1

스크립트 매크로 초기화 하고 싶습니다.

1

268

2

한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.

1

268

1

표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기

1

268

2

스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.

1

280

0

하위의 여러 폴더 중 특정폴더의 사진만 추출하기

1

339

2

한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.

1

636

1

보유 특허 검색 페이지에서 검색이 되지 않습니다.

1

134

1

hwp 페이지별 분할 저장하는 코드 관련 문의

0

443

0

한글 문서에 사용된 폰트명 추출

1

637

1