python 操作word教程_Python 使用 win32com 模块对word文件进行操作
what's the?win32com 模塊
win32com 模塊主要為 Python 提供調(diào)用 windows 底層組件對 word?、Excel、PPT 等進行操作的功能,只能在 Windows 環(huán)境下使用,并且需要安裝 office 相關(guān)軟件才行(WPS也行)。
使用 win32com 模塊主要是因為 Python 針對 word 文檔操作的第三方庫相對較少并且功能較弱,Python 有針對 .docx 后綴文件的第三方庫 python-docx,但是沒有針對 .doc 和 .wps 的第三方庫,所以這里就只能使用?win32com 模塊。?相對而言 Python 針對 Excel文檔操作的第三方庫就非常友好
importwin32com#最常用的模塊其實是win32com.client
基本操作
模擬打開 office
word = win32com.client.Dispatch('Word.Application')#或者使用下面的方法,使用啟動獨立的進程:#word = win32com.client.DispatchEx('Word.Application')
聲明屬性
word.Visible = 0 #后臺運行
word.DisplayAlerts = 0 #不顯示,不警告#如果不聲明上述屬性,運行的時候會顯示的打開office軟件操作文檔
打開文件
doc = word.Documents.Open('xxx.doc) # 打開一個已有的word文檔
#new_doc = word.Documents.Add() # 創(chuàng)建新的word文檔
插入文字
myRange =doc.Range(0,0)
myRange.InsertBefore('Hello word')
針對關(guān)鍵詞的操作
應(yīng)用場景:搜索關(guān)鍵字,將目標關(guān)鍵字替換為指定文字,或者更改關(guān)鍵字顏色、背景色等等
文字替換
word.Selection.Find.ClearFormatting()
word.Selection.Find.Replacement.ClearFormatting()
word.Selection.Find.Execute(OldStr, False, False, False, False, False, True,1, True, NewStr, 2)'''上面涉及的 11 個參數(shù)說明
(OldStr--搜索的關(guān)鍵字,
True--區(qū)分大小寫,
True--完全匹配的單詞,并非單詞中的部分(全字匹配),
True--使用通配符,
True--同音,
True--查找單詞的各種形式,
True--向文檔尾部搜索,
1,
True--帶格式的文本,
NewStr--替換文本,
2--替換個數(shù)(0表示不替換,1表示只替換匹配到的第一個,2表示全部替換)'''
更改文字顏色、背景色
self.xlApp.Selection.Find.ClearFormatting()
self.xlApp.Selection.Find.Replacement.ClearFormatting()#循環(huán)操作,將每個匹配到的關(guān)鍵詞進行換色
while self.xlApp.Selection.Find.Execute(str, False, False, False, False, False, True, 0, True, "", 0):
word.Selection.Range.HighlightColorIndex= 11 #替換背景顏色為綠色
word.Selection.Font.Color= 255 #替換文字顏色為紅色
'''wdAuto 0 Automatic color. Default; usually black.
wdBlack 1 Black color.
wdBlue 2 Blue color.
wdBrightGreen 4 Bright green color.
wdByAuthor -1 Color defined by document author.
wdDarkBlue 9 Dark blue color.
wdDarkRed 13 Dark red color.
wdDarkYellow 14 Dark yellow color.
wdGray25 16 Shade 25 of gray color.
wdGray50 15 Shade 50 of gray color.
wdGreen 11 Green color.
wdNoHighlight 0 Removes highlighting that has been applied.
wdPink 5 Pink color.
wdRed 6 Red color.
wdTeal 10 Teal color.
wdTurquoise 3 Turquoise color.
wdViolet 12 Violet color.
wdWhite 8 White color.
wdYellow 7 Yellow color.'''
更多背景顏色的值
頁眉文字替換
word.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
word.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting()
word.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute(OldStr, False, False, False, False, False, True,1, False, NewStr, 2)
打印
doc.PrintOut()
保存
doc.Save() #保存
doc.SaveAs('asdasd.doc') #另存為
退出
退出操作必須得做,不然進程就會一直占據(jù)著這個文件,下次操作相同文件的時候就會報錯
doc.Close() #關(guān)閉 word 文檔
word.Documents.Close(wc.wdDoNotSaveChanges) #保存并關(guān)閉 word 文檔
word.Quit() #關(guān)閉 office
轉(zhuǎn)碼操作
win32com 模塊支持對文檔進行各種轉(zhuǎn)碼操作,如 doc 轉(zhuǎn) docx,docx 轉(zhuǎn) doc,wps 轉(zhuǎn) pdf,pdf 轉(zhuǎn) docx 等等
下面舉個 docx?轉(zhuǎn)?pdf 例子
from win32com importclient as wc
word= wc.Dispatch("Word.Application")
wordhandle.Visible= 0 #后臺運行,不顯示
wordhandle.DisplayAlerts = 0 #不警告
doc = wordhandle.Documents.Open('xxx.docx')
doc.SaveAs('xxx.pdf', 17) #txt=4, html=10, docx=16, pdf=17
doc.Close()
word.Quit()
'''wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15'''
轉(zhuǎn)碼的碼
總結(jié)
以上是生活随笔為你收集整理的python 操作word教程_Python 使用 win32com 模块对word文件进行操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eulerOS 欧拉OS 审计修复日记
- 下一篇: Anaconda虚拟环境中,让Pytho