-
카테고리
-
세부 분야
업무 자동화
-
해결 여부
해결됨
문서 내 특정 표의 내용 읽기
23.04.19 17:02 작성 23.04.19 17:23 수정 조회수 734
1
한 문서 안에 표가 여러개 있을 때
하나씩 접근해서 표의 행과 열, 그리고 셀로 접근해서
셀의 데이터를 읽어 오고 싶습니다.
"한/글 표에 데이터프레임 채우기" 강의에서 특정 표로 접근하는 부분은
확인하고 잘 되고 있습니다.
여기서 각 셀을 순환하면서 접근하여
각 셀 내에 있는 텍스트를 읽어 오고 싶습니다.
답변 부탁 드립니다. 감사합니다.
답변을 작성해보세요.
1
일코
지식공유자2023.06.13
시운님 안녕하세요?^^ (회신이 늦어 죄송합니다..)
각각의 표에 순서대로 접근하는 방법까지 알아내셨다면,
이제 필요한 부분은
셀 주소 확인
셀 내용 확인
다음 셀로 이동
정도로 세 가지 코드만 있으면 될 것 같네요. (그렇죠?^^;)
우선 1. 셀 주소를 확인하는 방법은
def 한글_셀주소():
"""
표 안에 있는 경우 현재 위치한 셀의 주소를 반환한다.
"""
if hwp.SelectionMode != 3:
hwp.HAction.Run("TableCellBlock")
return hwp.KeyIndicator()[8].split(":")[0][1:-1]
그리고 2. 셀 내용을 확인하는 방법은
def 선택셀_텍스트():
"""
해당 셀이 선택된 상태에서
셀의 내용(문자열)을 리턴하는 함수
"""
hwp.InitScan(Range=0xff)
total_text = ""
state = 2
while state not in [0, 1]:
state, text = hwp.GetText()
total_text += text
hwp.ReleaseScan()
return total_text
마지막으로 3. 다음(우측) 셀로 이동하는 방법은
hwp.HAction.Run("TableRightCell")
# 위 메서드 실행시, 우측 이동에 성공하면 매번 True를 반환하며
# 표의 마지막 셀에 도착한 경우 False를 반환합니다.
# 모든 셀 순회시 이 값을 while문의 조건으로 사용하시면 됩니다.
#
# 예
#
# while True:
# # 특정작업
# if not hwp.HAction.Run("TableRightCell"):
# break
입니다.
위 함수를 조합하셔서
원하시는 작업 자동화에 성공하시기 바랍니다^^
감사합니다. 행복한 하루 되세요!!~
-1
인프런 AI 인턴
2023.05.24
안녕하세요, 인프런 AI 인턴이에요.
문서 내 특정 표의 내용을 읽기 위해서는 먼저 해당 문서를 읽어들이고, 표를 찾아 접근해야 합니다. 이후 각 셀 내에 있는 텍스트를 읽어들이는 방법은 다음과 같이 구현할 수 있습니다.
표 찾기: 문서 내의 모든 표를 찾아서 원하는 표를 탐색합니다. 표는 보통
태그로 구성되며, BeautifulSoup 라이브러리를 활용해서 표를 찾을 수 있습니다.
행과 열 접근: 찾아낸 표에서 행과 열을 접근하는 방법은 보통 표에서
태그로 구성된 각 행을 순회하면서 각 셀에 접근하는 방식입니다. 이를 위해 for문을 활용해서 각 행과 해당 행의 각 셀에 접근합니다. 셀 내 텍스트 읽기: 각 셀에 접근해서 그 내부의 텍스트를 읽기 위해서는 get_text() 메서드를 활용할 수 있습니다.
위 방법을 참고해서 특정 표 내부의 셀 데이터를 읽어들이는 코드를 구현하시면 될 것 같습니다. 저희 강의 내용에서도 한/글 표의 예시에 대한 코드를 제시해드렸으니 참고해보세요.
위의 내용이 도움이 되었길 바랍니다. 감사합니다.
답변 2