【python自动化办公01】word操作-新建文档
點(diǎn)擊上方“AI搞事情”關(guān)注我們
Python操作Word(Win32com)https://zhuanlan.zhihu.com/p/67543981
Office VBA 參考https://docs.microsoft.com/zh-cn/office/vba/api/overview
win32com 模塊主要為 Python 提供調(diào)用 windows 底層com組件的操作的功能,COM 組件為微軟公司為了計(jì)算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一套接口規(guī)范,很多大型軟件都使用 COM 來提供 API,不過目前只在windows上用。COM組件可以是一個(gè)Dll(進(jìn)程內(nèi)組件),也可以是一個(gè)EXE(進(jìn)程外組件),一個(gè)COM組件可以包含多個(gè)COM對(duì)象,一個(gè)COM對(duì)象又可以有多個(gè)接口。
MS Office、WPS 都可以通過底層com組件對(duì)其進(jìn)行調(diào)用,相比于python-docx、pydocx或者修改docx的xml文件,win32com可以直接使用VBA的相關(guān)接口,靈活性更好,適用性更高。
一、安裝
pip install pypiwin32二、新建文檔
import os from win32com.client import Dispatch, DispatchEx# 獲取當(dāng)前路徑 pwd = os.getcwd() # app = DispatchEx('Word.Application') # MS word app = DispatchEx("Kwps.Application") # WPS# 新建word文檔 doc = app.Documents.Add() # 打開文檔 # doc = app.Documents.Open('文檔路徑') # 顯示更新界面 app.Visible = True app.ScreenUpdating = True # 文檔開始位置插入內(nèi)容 doc_range1 = doc.Range(0, 0) doc_range1.InsertBefore('hello python word doc!') # 文檔末尾位置插入內(nèi)容 doc_range2 = doc.Range() doc_range2.InsertAfter(' word end') # 在文檔指定位置添加內(nèi)容 i = 5 doc_range3 = doc.Range(0, i) doc_range3.InsertAfter(" insert position i") # 必須使用絕對(duì)路徑進(jìn)行保存和另存 # doc.Save() # 如果文檔以前未保存過,則 “另存為” 對(duì)話框?qū)⑻崾居脩翩I入文件名。 doc.SaveAs(os.path.join(pwd, 'python_word.docx')) # 關(guān)閉 word 文檔 doc.Close() # 關(guān)閉軟件 app.Quit()至此,在當(dāng)前路徑下創(chuàng)建了名為python_word.docx的word文件,包含內(nèi)容:hello insert position i python word doc!word end
三、word相關(guān)對(duì)象
圖片Application:表示 Word 應(yīng)用程序。Application 對(duì)象包含可返回頂級(jí)對(duì)象的屬性和方法,包含菜單欄、工具欄、命令以及所有文檔。
兩種方式獲取Application對(duì)象:
Dispatch:新建實(shí)例
DispatchEx:啟動(dòng)獨(dú)立的進(jìn)程
Documents:文檔對(duì)象,可以存著多個(gè)Document,相當(dāng)于word打開多個(gè)文檔。
兩種方式獲取文檔對(duì)象:
# 新建文檔 doc = app.Documents.Add() # 打開文檔 doc = app.Documents.Open('Word文件路徑') **Range**(Start, End)方法來指定文檔的特定范圍,文檔第一個(gè)字符位置為0,最后一個(gè)字符的位置為文檔的字符總數(shù),未提供參數(shù)時(shí)全選內(nèi)容。Selection:選區(qū),文檔選擇區(qū)域或者插入點(diǎn)(光標(biāo)閃爍位置),整個(gè)文檔只能同時(shí)激活一個(gè)選區(qū),默認(rèn)插入點(diǎn)在文檔開始位置。
s = app.SelectionFont:包含對(duì)象的字體屬性(如字體名稱、字號(hào)、顏色等)。
# 獲取選區(qū)或者區(qū)域字體對(duì)象 font = s.Font # 或 font = r.Font設(shè)置字體
# 字體設(shè)置為仿宋,電腦上必須安裝有該字體 font.Name = '仿宋' # 字號(hào)設(shè)置為三號(hào) font.Size = 16PageSetup:代表頁(yè)面設(shè)置對(duì)象。?對(duì)于 PageSetup 對(duì)象作為屬性包含文檔 (如左邊的距、 下邊距和紙張大小) 的所有頁(yè)面設(shè)置屬性。
# 獲取頁(yè)面設(shè)置對(duì)象 ps = doc.PageSetup # 上邊距79磅 ps.TopMargin = 130 # 頁(yè)面大小,A3、A4分別為6,7 ps.PaperSize = 6更多對(duì)象和屬性設(shè)置可以去官網(wǎng)文檔查看學(xué)習(xí)。
長(zhǎng)按二維碼關(guān)注我們
有趣的靈魂在等你
總結(jié)
以上是生活随笔為你收集整理的【python自动化办公01】word操作-新建文档的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CycleGAN非配对图像生成,定制你的
- 下一篇: github上关于机器学习的awesom