您好,登錄后才能下訂單哦!
這篇文章給大家介紹python中如何進行word操作新建文檔,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
win32com 模塊主要為 Python 提供調用 windows 底層com組件的操作的功能,COM 組件為微軟公司為了計算機工業的軟件生產更加符合人類的行為方式開發的一套接口規范,很多大型軟件都使用 COM 來提供 API,不過目前只在windows上用。COM組件可以是一個Dll(進程內組件),也可以是一個EXE(進程外組件),一個COM組件可以包含多個COM對象,一個COM對象又可以有多個接口。
MS Office、WPS 都可以通過底層com組件對其進行調用,相比于python-docx、pydocx或者修改docx的xml文件,win32com可以直接使用VBA的相關接口,靈活性更好,適用性更高。
pip install pypiwin32
import os
from win32com.client import Dispatch, DispatchEx# 獲取當前路徑
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
# 文檔開始位置插入內容
doc_range1 = doc.Range(0, 0)
doc_range1.InsertBefore('hello python word doc!')
# 文檔末尾位置插入內容
doc_range2 = doc.Range()
doc_range2.InsertAfter(' word end')
# 在文檔指定位置添加內容
i = 5
doc_range3 = doc.Range(0, i)
doc_range3.InsertAfter(" insert position i")
# 必須使用絕對路徑進行保存和另存
# doc.Save() # 如果文檔以前未保存過,則 “另存為” 對話框將提示用戶鍵入文件名。
doc.SaveAs(os.path.join(pwd, 'python_word.docx'))
# 關閉 word 文檔
doc.Close()
# 關閉軟件
app.Quit()
至此,在當前路徑下創建了名為python_word.docx的word文件,包含內容:hello insert position i python word doc!word end
Application:表示 Word 應用程序。Application 對象包含可返回頂級對象的屬性和方法,包含菜單欄、工具欄、命令以及所有文檔。
兩種方式獲取Application對象:
Dispatch:新建實例
DispatchEx:啟動獨立的進程
Documents:文檔對象,可以存著多個Document,相當于word打開多個文檔。
兩種方式獲取文檔對象:
# 新建文檔
doc = app.Documents.Add()
# 打開文檔
doc = app.Documents.Open('Word文件路徑')
**Range**(Start, End)方法來指定文檔的特定范圍,文檔第一個字符位置為0,最后一個字符的位置為文檔的字符總數,未提供參數時全選內容。
Selection:選區,文檔選擇區域或者插入點(光標閃爍位置),整個文檔只能同時激活一個選區,默認插入點在文檔開始位置。
s = app.Selection
Font:包含對象的字體屬性(如字體名稱、字號、顏色等)。
# 獲取選區或者區域字體對象
font = s.Font
# 或
font = r.Font
設置字體
# 字體設置為仿宋,電腦上必須安裝有該字體
font.Name = '仿宋'
# 字號設置為三號
font.Size = 16
PageSetup:代表頁面設置對象。 對于 PageSetup 對象作為屬性包含文檔 (如左邊的距、 下邊距和紙張大小) 的所有頁面設置屬性。
# 獲取頁面設置對象
ps = doc.PageSetup
# 上邊距79磅
ps.TopMargin = 130
# 頁面大小,A3、A4分別為6,7
ps.PaperSize = 6
關于python中如何進行word操作新建文檔就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。