win32com操作word之Application&Documents接口學(xué)習(xí)
win32com和微軟的word接口文檔有什么關(guān)系
先回答一個網(wǎng)友私信問題: win32com和微軟的word接口文檔有什么關(guān)系
win32com的底層調(diào)用的是word的接口,理論上,想查看win32com的接口情況,只需要看微軟官方的文檔即可。文檔地址: learn.microsoft.com/zh-cn/dotne…
令入門者云里霧里的API關(guān)系
微軟word接口文檔的組織形式說不上有什么問題,但其接口規(guī)模巨大(接近900個,每個接口中少則十幾個,多則幾百個的屬性和方法)的接口及錯綜綜復(fù)雜的接口 交叉引用足以將一部分入門者拒之門外,著實繁雜。
往往看到一個接口即便有詳細的說明,就是無法知曉如何使用,各種嘗試也不得要領(lǐng),往往最常見的問題是:到底誰來調(diào)用這個接口。
要想快速抓住word編程的七寸,請一定要認(rèn)真閱讀下方的講解。
第一點 回憶一下,我們是如何操作一個文檔的
- 1、打開客戶端
- 2、創(chuàng)建或打開一個文檔
- 3、選中某些資源或鼠標(biāo)點擊準(zhǔn)備寫入內(nèi)容
- 4、設(shè)置格式:頁面設(shè)置、字體顏色、縮進等等
- 5、保存文檔
- 6、關(guān)閉客戶端
瞧,其實就那么簡單,別看文檔寫得烏泱烏泱的,從文檔操作的角度去思考,其實這個事并沒有那么復(fù)雜。現(xiàn)在只需要記?。?/p>
- Application接口是用來控制客戶端的啟動和關(guān)閉的,甭管它有多少個直接子級API
- Documents接口是用來創(chuàng)建和打開文檔的,通過Application.Documents即可調(diào)用。記住創(chuàng)建文檔和打開文檔回返回一個Document對象,要使用變量接受這個對象,這樣才方便我們對這個文檔進行操作。
現(xiàn)在再回過來對照,客戶端打開了,文檔也有了,那使用什么方法來選中資源呢?接口中有Selection和Range可以實現(xiàn)選中文檔的資源,官方推薦在文檔級編程中,優(yōu)先使用Range接口。 這不來了嘛,就是用Range接口來選中資源。那么誰才有這個資格來調(diào)用Range接口呢?答案是:Document,也就是文檔對象,所以上面提到,創(chuàng)建文檔或保存文檔需要使用變量來接受,就是為了方便后續(xù)的操作。
第二點 字體、字號、行間距、頁面設(shè)置等等這些如何實現(xiàn)呢
先將word的資源分類
- 1、內(nèi)容類資源,如文字、圖片、表格、圖表、形狀及公式等
- 2、文檔設(shè)置類資源,如頁眉頁腳、文檔頁面設(shè)置
上方兩點分類,通通都能通過Document接口搞定,因為這些資源只在文檔中才存在呀,即便是頁面設(shè)置,也是設(shè)置某個文檔的!所以,即便看對應(yīng)的文檔,我們也能快速知曉調(diào)用者就是Document。 再者,如果選中了某段文字,想為文字設(shè)置格式,各種格式也有獨立的接口,那么又是誰來調(diào)用這些格式接口呢?答案自然是:Range。使用Range選中某個資源,那自然是使用Range來調(diào)用這些格式接口。 瞧瞧,就是那么簡單。
第二課的代碼演示 (并不完全和視頻教程中的一樣)
ok,進入第二集的代碼演示階段,跟著敲一篇,簡單的一批。
Application和Documents接口演示
Applicatioin和Documents是兩個入門級API,前者控制客戶端,后者保存著所有的文檔對象
from win32com.client import Dispatch # 此乃調(diào)度器 client = Dispatch('kwps.Application') # 如果要啟動微軟的word客戶端可使用下方辦法 # client = Dispatch('word.Application') client.Visible = True # 到這,客戶端已經(jīng)能啟動了,但尚未打開文檔 # client是一個客戶端對象,即Application對象 # Documents是Application的直接子級API,通過Application直接調(diào)用Documents # 創(chuàng)建一個新文檔并返回一個Document對象 d1 = client.Documents.Add() # 有默認(rèn)參數(shù),正常創(chuàng)建無需傳參 # 打開一個文檔并返回一個Document對象 d2 = client.Documents.Open( FileName=file_name, ) # Open方法的參數(shù)多達15個,第一個參數(shù)是需要打開的文檔路徑,必填參數(shù),文件不存在時拋出異常 # 如果文檔要密碼才能打開則使用需要將密碼傳給Open,如下 d2 = client.Documents.Open( FileName=file_path, # 文件路徑 ConfirmConversions=True, # 文件不是word格式時是否會彈窗要求強制轉(zhuǎn)換格式 ReadOnly=False, # 是否以只讀方式打開 AddToRecentFiles=True, # 是否將文件添加到“文件”->"最近使用"中 PasswordDocument='密碼' # 所需要的密碼 ) # 注:Open還可以使用位置參數(shù)傳參,其各個參數(shù)的位置要嚴(yán)格按照文檔參數(shù)的位置來設(shè)置
此時,我們是不是已經(jīng)有了兩個文檔對象了?一個Add
方法所創(chuàng)建的d1,一個是Open
方法所返回的d2。要想單獨操作某個文檔,就直接使用變量d1
或d2
去調(diào)用Document
接口中的方法和屬性就OK了。
第一課的內(nèi)容非常簡單,其重點并非是Application和Documents如何使用,而是要建立起一個"用戶思維",即再復(fù)雜的編程,最后都是給用戶使用的,我們站在用戶的角度的感受,該如何去操作一個文檔:打開文檔、操作文檔,上方的變量中,d1
和d2
都是要操作的對象,圍繞Document
這個對象,再去調(diào)用各種各樣的接口來實現(xiàn)需求。
以上就是win32com操作word之Application&Documents接口學(xué)習(xí)的詳細內(nèi)容,更多關(guān)于win32com操作word接口的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Ubuntu 20.04安裝Pycharm2020.2及鎖定到任務(wù)欄的問題(小白級操作)
這篇文章主要介紹了Ubuntu 20.04安裝Pycharm2020.2及鎖定到任務(wù)欄的問題,本教程給大家講解的很詳細,非常適合小白級操作,需要的朋友可以參考下2020-10-10Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04使用Python和Scribus創(chuàng)建一個RGB立方體的方法
這篇文章主要介紹了使用Python和Scribus創(chuàng)建一個RGB立方體的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07用python標(biāo)準(zhǔn)庫difflib比較兩份文件的異同詳解
今天小編就為大家分享一篇用python標(biāo)準(zhǔn)庫difflib比較兩份文件的異同詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11