inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

날짜 뒤에 요일 붙이기

날짜 뒤에 요일 붙이기 질문

해결된 질문

366

sunstephan

작성한 질문수 6

1

import os
import datetime as dt
from time import sleep

import win32com.client as win32

def init_hwp():
    hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
    hwp.XHwpWindows.Item(0).Visible = True
    hwp.RegisterModule("FilePathCheckDLL","FilePathCheckerModule")
    return hwp

hwp = init_hwp()
#hwp.Open(r"D:\\SHW\\PROGRAM\\PYTHON\\hwp\\data\\실작업공정표.hwpx")
hwp.Open(os.path.join(os.getcwd(), r"D:\\SHW\\PROGRAM\\PYTHON\\hwp\\data\\실작업공정표.hwpx"))

def get_value():
    hwp.InitScan(Range=0xff)  # 추출범위를 "선택영역"으로 지정
    text = hwp.GetText()[1]  # 선택범위 문자열값 추출
    hwp.ReleaseScan()  # 검색종료
    return text  # 추출값 리턴


def get_weekday(text):
    week_list = ["월", "화", "수", "목", "금", "토", "일"]
    month, day = [int(i) for i in text.split(".")[:2]]
    week_num = dt.date(2022, month, day).weekday()
    week_day = week_list[week_num]
    return f"({week_day})"


def insert_text(text):
    act = hwp.CreateAction("InsertText")
    pset = act.CreateSet()
    pset.SetItem("Text", text)
    act.Execute(pset)

if __name__ == '__main__':
    hwp.FindCtrl()  # 표 선택
    hwp.Run("ShapeObjTableSelCell")  # 첫 번째 셀로 진입(셀선택상태)
    while True:  # 무한반복
        text = get_value()  # 셀의 텍스트 추출
        if text.endswith("."):  # 셀 안의 텍스트가 "."으로 끝나면(날짜셀을 구분하는 임의의 방법)
            weekday = get_weekday(text)  # 요일 파악
            hwp.Run("Cancel")  # 셀선택 취소
            hwp.Run("MoveLineEnd")  # 문자열 끝으로 이동
            insert_text(weekday)  # 요일 삽입
            hwp.Run("TableCellBlock")  # 다시 셀선택
        if not hwp.HAction.Run("TableRightCell"):  # 우측으로 이동하다
            break  # 끝에 도달하면 while문 종료

 

아무리 해도 문서에서 변경이 안일어나는데 뭐가 문제인지 모르겠습니다.

그리고 마지막 if 문에서

if __name__ == '__main__':

이게 무슨 의미인지 설명 부탁 드립니다.

python 한컴오피스

답변 1

1

일코

sunstephan님 오랜만에 인사드립니다^^

해당 문서를 메일로 한 번 보내주시겠어요?
(날짜서식 이외에 민감한 부분은 삭제해주셔도 됩니다.)

예제문서의 날짜서식과 sunstephan님의 문서 날짜서식이 달라서 그런 것으로 추정됩니다.

martinii.fun@gmail.com으로 보내주시면 예시코드를 짜서 보내드려보겠습니다.

감사합니다. 행복한 하루 되세요^^

1

sunstephan

처음에 셀블럭을 선택하게 한 다음에 실행하니 작동 되네요..

5번째 줄에서 시작할 때 블럭으로 잡은 다음에 텍스트를 추출할 수 있는거 같아요.

if __name__ == '__main__':
    hwp.FindCtrl()  # 표 선택
    hwp.Run("ShapeObjTableSelCell")  # 첫 번째 셀로 진입(셀선택상태)
    while True:  # 무한반복
        hwp.Run("TableCellBlock")  #! 셀 블럭 선택하기
        text = get_value()  # 셀의 텍스트 추출
        if text.endswith("."):  # 셀 안의 텍스트가 "."으로 끝나면(날짜셀을 구분하는 임의의 방법)
            weekday = get_weekday(text)  # 요일 파악
            hwp.Run("Cancel")  # 셀선택 취소
            hwp.Run("MoveLineEnd")  # 문자열 끝으로 이동
            insert_text(weekday)  # 요일 삽입
            hwp.Run("TableCellBlock")  # 다시 셀선택
        if not hwp.HAction.Run("TableRightCell"):  # 우측으로 이동하다
            break  # 끝에 도달하면 while문 종료

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

0

79

1

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

0

62

1

본문을 각주로 내리는 법

1

93

1

한글 자동화 삽도 삽입!!

1

389

2

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

1

243

2

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

1

120

2

사무실 컴퓨터ㅠ

0

99

2

글자입력 여러번 실행기

0

71

1

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

1

104

1

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

1

167

2

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

1

1144

1

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

1

226

2

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

1

124

1

표 병합하기 관련

0

143

0

메타태그 삽입 자동화

0

191

1

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

1

274

2

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

1

272

1

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

1

283

2

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

1

286

0

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

1

350

2

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

1

687

1

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

1

142

1

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

0

455

0

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

1

654

1