(pywin32)에서 Word 작업하기 [4] - 문자열 입력/검색/삭제
개요
새 문서에 Range 객체로 문자열을 입력/취득/삭제합니다.
다음 번은 「저장」또는 「Sentences/Paragraphs/Words/Charactors를 사용한 무엇인가」로 합니다.
이번에 이용하는 Word 오브젝트
전회까지 소개한 메소드/프로퍼티는 생략.
객체 이름
속성/메소드
설명
링크
문서
-
문서의 한 문서
msdn
Range()
Range 객체를 생성하는 메서드
msdn
콘텐츠
문서 전체를 나타내는 Range 객체
msdn
Range
-
인접한 영역을 나타내는 객체
msdn
시작
Range의 시작 문자 위치를 설정 또는 취득
msdn
끝
Range의 끝 문자 위치를 설정 또는 취득
msdn
텍스트
Range의 텍스트를 설정 또는 취득
msdn
Delete()
Range 텍스트 삭제
msdn
문자를 입력/취득하는 경우 Range를 이용합니다.
※Range와 매우 닮은 선택 도 있습니다. 별도 설명 예정.
지금까지의 모델에서는 단순화를 위해 「쇼트 컷적 관련」은 생략하고 있습니다만, 실은 「Document와 Range의 사이」에도 관련이 있습니다.
코드
qtconsole의 확인 결과를 나타내겠지만, 전회와 같이 템플리적인 처리는 생략합니다.
↓의 「★어떤 것의 처리★」 부분에 기술하고 있는 이미지로 읽어 주세요.
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
#新規ドキュメントを作成する : Documents.Add()する。
doc=Application.Documents.Add()
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
문자열 입력/취득
「아이 우에오」라고 키보드로 손 입력해, 아래 그림의 파일을 작성해, 이것을 Range로 조사해 보겠습니다.
Range(0,1) 가 어떤 영역을 나타내는지 텍스트를 취득해 조사해 보겠습니다.
In [194]: doc.Range(0,1).Text
Out[194]: 'あ'
「아」를 포함한 영역이었습니다.
Range(2,4)도 살펴보겠습니다.
doc.Range(2,4).Text
Out[195]: 'うえ' Range(2,3)
「우」와 「에」를 포함한 영역이었습니다.
Range(1,1) 라고 하는 폭 제로가 무엇을 나타내는지, "!"를 넣어 조사해 보겠습니다.
In [199]: doc.Range(1,1).Text="!"
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
「아」와 「이」의 사이에 끼워졌습니다.
Range(x,x) 는 문자와 문자의 경계를 나타내는 폭 제로의 영역과 같습니다.
"!"의 입력 전의 상태는, 도적으로 나타내면...
이었던 것 같습니다.
Range.Delete()를 사용하여 "!"를 삭제해 봅니다.
# "!"が入力されていることを確認
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
# "!"の位置を確認。
In [211]: doc.Range(1,2).Text
Out[211]: '!' # Range(1,2)
# "!"を削除 : Range(1,2).Delete()を実施。
In [212]: doc.Range(1,2).Delete()
Out[212]: 1
In [214]: doc.Range(0,3).Text
Out[214]: 'あいう' # "!"が削除できた。
Document.Content를 사용하여 전체 문서의 텍스트를 가져옵니다.
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
마지막 CR(\r)을 포함하여 문서 전체와 같습니다.
Content 속성은 "문서 전체를 나타내는 Range 객체"이므로 Range() 메서드와 Start, End를 사용하여 Content와 등가인 Range 객체를 만들어 봅니다.
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
In [216]: doc.Content.Start
Out[216]: 0
In [217]: doc.Content.End
Out[217]: 6
In [219]: doc.Range(doc.Content.Start,doc.Content.End).Text
Out[219]: 'あいうえお\r'
doc.Content 와 Range(Content.Start,Content.End) 가 등가인 것을 알았습니다.
마지막으로 손으로 입력한 모든 항목을 삭제해 봅니다. 앞에서와 같이 Content 속성은 "문서 전체를 나타내는 Range 객체"이므로 이 Range 객체의 Delete()를 호출해 봅니다.
In [220]: doc.Content.Text
Out[220]: 'あいうえお\r'
In [221]: doc.Content.Delete()
Out[221]: 1
In [222]: doc.Content.Text
Out[222]: '\r'
전체 문서를 삭제할 수 있습니다.
관련
Python(pywin32)에서 Word 작업하기 [1] - Word 객체 모델
Python(pywin32)에서 Word 작업하기 [2] - Word 시작/종료
Python(pywin32)에서 Word 작업하기 [3] - 새 문서 만들기
Python(pywin32)에서 Word 작업하기 [4] - 문자열 입력/취득/삭제
파이썬 (pywin32)에서 Word 작업하기 [5] - 문서를 파일에 저장, Word 옵션 변경
Python(pywin32)에서 Word 작업하기 [6] - 특정 제목이 있는 창 작업
Python(pywin32)에서 Word 작업하기 [7] - 기존 문서 열기/닫기(Documents.Open(), Document.Close())
Python(pywin32)에서 Word 조작하기 [8] - 단락 단위의 문자열 취득, 통계 (페이지 수, 단락 수, etc) 취득
참고
전회까지 소개한 메소드/프로퍼티는 생략.
객체 이름
속성/메소드
설명
링크
문서
-
문서의 한 문서
msdn
Range()
Range 객체를 생성하는 메서드
msdn
콘텐츠
문서 전체를 나타내는 Range 객체
msdn
Range
-
인접한 영역을 나타내는 객체
msdn
시작
Range의 시작 문자 위치를 설정 또는 취득
msdn
끝
Range의 끝 문자 위치를 설정 또는 취득
msdn
텍스트
Range의 텍스트를 설정 또는 취득
msdn
Delete()
Range 텍스트 삭제
msdn
문자를 입력/취득하는 경우 Range를 이용합니다.
※Range와 매우 닮은 선택 도 있습니다. 별도 설명 예정.
지금까지의 모델에서는 단순화를 위해 「쇼트 컷적 관련」은 생략하고 있습니다만, 실은 「Document와 Range의 사이」에도 관련이 있습니다.
코드
qtconsole의 확인 결과를 나타내겠지만, 전회와 같이 템플리적인 처리는 생략합니다.
↓의 「★어떤 것의 처리★」 부분에 기술하고 있는 이미지로 읽어 주세요.
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
#新規ドキュメントを作成する : Documents.Add()する。
doc=Application.Documents.Add()
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
문자열 입력/취득
「아이 우에오」라고 키보드로 손 입력해, 아래 그림의 파일을 작성해, 이것을 Range로 조사해 보겠습니다.
Range(0,1) 가 어떤 영역을 나타내는지 텍스트를 취득해 조사해 보겠습니다.
In [194]: doc.Range(0,1).Text
Out[194]: 'あ'
「아」를 포함한 영역이었습니다.
Range(2,4)도 살펴보겠습니다.
doc.Range(2,4).Text
Out[195]: 'うえ' Range(2,3)
「우」와 「에」를 포함한 영역이었습니다.
Range(1,1) 라고 하는 폭 제로가 무엇을 나타내는지, "!"를 넣어 조사해 보겠습니다.
In [199]: doc.Range(1,1).Text="!"
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
「아」와 「이」의 사이에 끼워졌습니다.
Range(x,x) 는 문자와 문자의 경계를 나타내는 폭 제로의 영역과 같습니다.
"!"의 입력 전의 상태는, 도적으로 나타내면...
이었던 것 같습니다.
Range.Delete()를 사용하여 "!"를 삭제해 봅니다.
# "!"が入力されていることを確認
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
# "!"の位置を確認。
In [211]: doc.Range(1,2).Text
Out[211]: '!' # Range(1,2)
# "!"を削除 : Range(1,2).Delete()を実施。
In [212]: doc.Range(1,2).Delete()
Out[212]: 1
In [214]: doc.Range(0,3).Text
Out[214]: 'あいう' # "!"が削除できた。
Document.Content를 사용하여 전체 문서의 텍스트를 가져옵니다.
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
마지막 CR(\r)을 포함하여 문서 전체와 같습니다.
Content 속성은 "문서 전체를 나타내는 Range 객체"이므로 Range() 메서드와 Start, End를 사용하여 Content와 등가인 Range 객체를 만들어 봅니다.
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
In [216]: doc.Content.Start
Out[216]: 0
In [217]: doc.Content.End
Out[217]: 6
In [219]: doc.Range(doc.Content.Start,doc.Content.End).Text
Out[219]: 'あいうえお\r'
doc.Content 와 Range(Content.Start,Content.End) 가 등가인 것을 알았습니다.
마지막으로 손으로 입력한 모든 항목을 삭제해 봅니다. 앞에서와 같이 Content 속성은 "문서 전체를 나타내는 Range 객체"이므로 이 Range 객체의 Delete()를 호출해 봅니다.
In [220]: doc.Content.Text
Out[220]: 'あいうえお\r'
In [221]: doc.Content.Delete()
Out[221]: 1
In [222]: doc.Content.Text
Out[222]: '\r'
전체 문서를 삭제할 수 있습니다.
관련
Python(pywin32)에서 Word 작업하기 [1] - Word 객체 모델
Python(pywin32)에서 Word 작업하기 [2] - Word 시작/종료
Python(pywin32)에서 Word 작업하기 [3] - 새 문서 만들기
Python(pywin32)에서 Word 작업하기 [4] - 문자열 입력/취득/삭제
파이썬 (pywin32)에서 Word 작업하기 [5] - 문서를 파일에 저장, Word 옵션 변경
Python(pywin32)에서 Word 작업하기 [6] - 특정 제목이 있는 창 작업
Python(pywin32)에서 Word 작업하기 [7] - 기존 문서 열기/닫기(Documents.Open(), Document.Close())
Python(pywin32)에서 Word 조작하기 [8] - 단락 단위의 문자열 취득, 통계 (페이지 수, 단락 수, etc) 취득
참고
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
#新規ドキュメントを作成する : Documents.Add()する。
doc=Application.Documents.Add()
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
In [194]: doc.Range(0,1).Text
Out[194]: 'あ'
doc.Range(2,4).Text
Out[195]: 'うえ' Range(2,3)
In [199]: doc.Range(1,1).Text="!"
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
# "!"が入力されていることを確認
In [201]: doc.Range(0,3).Text
Out[201]: 'あ!い'
# "!"の位置を確認。
In [211]: doc.Range(1,2).Text
Out[211]: '!' # Range(1,2)
# "!"を削除 : Range(1,2).Delete()を実施。
In [212]: doc.Range(1,2).Delete()
Out[212]: 1
In [214]: doc.Range(0,3).Text
Out[214]: 'あいう' # "!"が削除できた。
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
In [215]: doc.Content.Text
Out[215]: 'あいうえお\r'
In [216]: doc.Content.Start
Out[216]: 0
In [217]: doc.Content.End
Out[217]: 6
In [219]: doc.Range(doc.Content.Start,doc.Content.End).Text
Out[219]: 'あいうえお\r'
In [220]: doc.Content.Text
Out[220]: 'あいうえお\r'
In [221]: doc.Content.Delete()
Out[221]: 1
In [222]: doc.Content.Text
Out[222]: '\r'
Python(pywin32)에서 Word 작업하기 [1] - Word 객체 모델
Python(pywin32)에서 Word 작업하기 [2] - Word 시작/종료
Python(pywin32)에서 Word 작업하기 [3] - 새 문서 만들기
Python(pywin32)에서 Word 작업하기 [4] - 문자열 입력/취득/삭제
파이썬 (pywin32)에서 Word 작업하기 [5] - 문서를 파일에 저장, Word 옵션 변경
Python(pywin32)에서 Word 작업하기 [6] - 특정 제목이 있는 창 작업
Python(pywin32)에서 Word 작업하기 [7] - 기존 문서 열기/닫기(Documents.Open(), Document.Close())
Python(pywin32)에서 Word 조작하기 [8] - 단락 단위의 문자열 취득, 통계 (페이지 수, 단락 수, etc) 취득
참고
Reference
이 문제에 관하여((pywin32)에서 Word 작업하기 [4] - 문자열 입력/검색/삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/int_main_void/items/f135d321262d9de05efc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)