(pywin32)에서 Word 작업하기 [3] - 새 문서 만들기
개요
새 문서를 만듭니다.
다음 번에는 문자를 씁니다.
이번에 이용하는 Word 오브젝트
전회까지 소개한 메소드/프로퍼티는 생략.
객체 이름
속성/메소드
설명
링크
응용
-
Word 앱을 나타내는 개체
msdn
ActiveDocument
작업 중인 문서(Document)
msdn
Documents
-
Document 컬렉션
msdn
카운트
컬렉션의 개체 수
msdn
Add()
새 문서 작성
msdn
문서
-
문서의 한 문서
msdn
이름
파일 이름 만 1
msdn 2
Activate()
작업중인 문서로 만듭니다 3
msdn
ActiveDocument 속성은 작업 중인 문서(Active Document)라면 Application→Documents→Document를 따르지 않아도 Document에 액세스할 수 있음을 나타냅니다.
코드
이후는 코드(라고 하는지, qtconsole의 확인 결과)를 나타내 갑니다만, 전회의 기동 종료와 같은 템플리적인 처리는 생략합니다. ↓의 「★어떤 것의 처리★」 부분에 기술하고 있는 이미지로 읽어 주세요.
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
Word 컬렉션 정보
Word 컬렉션의 각 요소에는 Documents(1), Documents(2), ...와 괄호로 액세스합니다. 다음에 주의가 필요합니다.
전회까지 소개한 메소드/프로퍼티는 생략.
객체 이름
속성/메소드
설명
링크
응용
-
Word 앱을 나타내는 개체
msdn
ActiveDocument
작업 중인 문서(Document)
msdn
Documents
-
Document 컬렉션
msdn
카운트
컬렉션의 개체 수
msdn
Add()
새 문서 작성
msdn
문서
-
문서의 한 문서
msdn
이름
파일 이름 만 1
msdn 2
Activate()
작업중인 문서로 만듭니다 3
msdn
ActiveDocument 속성은 작업 중인 문서(Active Document)라면 Application→Documents→Document를 따르지 않아도 Document에 액세스할 수 있음을 나타냅니다.
코드
이후는 코드(라고 하는지, qtconsole의 확인 결과)를 나타내 갑니다만, 전회의 기동 종료와 같은 템플리적인 처리는 생략합니다. ↓의 「★어떤 것의 처리★」 부분에 기술하고 있는 이미지로 읽어 주세요.
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
Word 컬렉션 정보
Word 컬렉션의 각 요소에는 Documents(1), Documents(2), ...와 괄호로 액세스합니다. 다음에 주의가 필요합니다.
import win32com.client
#Wordを起動する : Applicationオブジェクトを生成する
Application=win32com.client.Dispatch("Word.Application")
#Wordを画面表示する : VisibleプロパティをTrueにする
Application.Visible=True
★なんらかの処理★
#Wordを終了する : Quitメソッドを呼ぶ
Application.Quit()
순차 액세스는 반복하는 것이 압도적으로 빠릅니다. 것
새 문서 작성
Application.Documents.Add()를 호출하면 Documents에 새 Document가 추가되고 반환 값으로 추가된 Document에 대한 참조가 반환됩니다.
또한 Application.ActiveDocument가 가리키는 대상도 추가된 Document가 되어 있습니다.
# Documentオブジェクトの個数を確認
In [79]: Application.Documents.Count
Out[79]: 0 # Documentオブジェクトは0個
#Add()する。追加したDocumentの参照が返ってくるのでdocで受け取っておく。
In [80]: doc=Application.Documents.Add()
# Documentオブジェクトの個数を確認
In [81]: Application.Documents.Count
Out[81]: 1 # 1個追加されている。
# Nameを3つの方法で確認する。
In [82]: doc.Name
Out[82]: '文書 1'
In [83]: Application.ActiveDocument.Name
Out[83]: '文書 1'
In [84]: Application.Documents(1).Name
Out[84]: '文書 1'
Add() 호출은 Application.ActiveDocument 및 Application.Documents(n)의 참조 대상을 변경합니다. 변수로 참조를 받아 두고, 사용하는 것이 좋다고 생각합니다.
#doc2で2個目の参照を受け取っておく
In [85]: doc2=Application.Documents.Add()
# Nameを3つの方法で確認する。
In [86]: doc2.Name
Out[86]: '文書 2'
In [87]: Application.ActiveDocument.Name
Out[87]: '文書 2' # Add()の呼び出しで追加されたものがActiveDocumentになる
In [88]: Application.Documents(1).Name
Out[88]: '文書 2' # Add()の呼び出しでDocuments(1)が指しているものも変わってしまう!!!
In [89]: Application.Documents(2).Name
Out[89]: '文書 1' # Documents(2)に移動している。
# docで保持しておいた参照は変わらない
In [90]: doc.Name
Out[90]: '文書 1'
# Activate()を呼び出すと、
In [91]: doc.Activate()
In [92]: Application.ActiveDocument.Name
Out[92]: '文書 1' # ActiveDocumentになる
# Documents(1)、Documents(2)は変化なし
In [93]: Application.Documents(1).Name
Out[93]: '文書 2'
In [94]: Application.Documents(2).Name
Out[94]: '文書 1'
관련
Python(pywin32)에서 Word 작업하기 [1] - Word 객체 모델
Python(pywin32)에서 Word 작업하기 [2] - Word 시작/종료
Python(pywin32)에서 Word 작업하기 [3] - 새 문서 만들기
Python(pywin32)에서 Word 작업하기 [4] - 문자열 입력/취득/삭제
Python(pywin32)에서 Word 작업하기 [5] - 문서를 파일에 저장, Word 옵션 변경
Python(pywin32)에서 Word 작업하기 [6] - 특정 제목이 있는 창 작업
Python(pywin32)에서 Word 작업하기 [7] - 기존 문서 열기/닫기(Documents.Open(), Document.Close())
Python(pywin32)에서 Word 조작하기 [8] - 단락 단위의 문자열 취득, 통계 (페이지 수, 단락 수, etc) 취득
참고
주석의 기계 번역이 끔찍하기 때문에 msdn_en-us의 Remarks를 보는 것이 좋습니다.
msdn은 왜 Bookmark.Name 예제를 작성했습니다. (제목은 Document.Name이지만) ↩
스크립트에서 작업 중(Active)의 개념이 필요할 때는 무엇일까. (GUI 작업이라면 알 수 있지만) ↩
Reference
이 문제에 관하여((pywin32)에서 Word 작업하기 [3] - 새 문서 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/int_main_void/items/a36cf348d6eedb31246f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)