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