前面说了怎么操作EXCEL,现在讲讲如何操作WORD。
当我还是个小菜鸟的时候,曾经每半个月就要将一份病毒扫描报告的内容复制粘贴到几十份文档中。个中心酸,无法言表。而网上关于使用pywin32这个模块操作WORD文档的信息都很初步。因此,虽然win32com很好用,但是还是无法用它来达成解放劳动力的目的。
在一番摸索下,终于明白了如何参考MSDN上Office相关的接口文档来使用win32com操作WORD文档。下面,就来讲讲如何结合MSDN的接口文档(Microsoft.Office.Interop.Word)使用win32com操作WORD文档吧
Word基本操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import win32com from win32com.client import *
docApp = win32com.client.Dispatch("Word.Application")
docApp.Visible = True
doc = docApp.Documents.Add()
doc.SaveAs("E:\\text.doc") doc.Close()
doc = docApp.Documents.Open("E:\\text.doc")
doc.Close(SaveChanges=0)
docApp.Quit()
|
参考: * 应用:Application * 是否可见:Visible * 文档:Documents
Selection/Table
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| sel = docApp.Selection
sel.Range.InsertAfter("hello, ele")
sel.MoveDown(5,12)
tblcnt = doc.Tables.Count
doc.Tables[0].Rows[0].Cells[0].Range.Text = "hello, ele"
doc.Tables[1].Range.Copy()
sel.Range.Paste()
|
参考: * Selection * Range * Tables
其他
1 2 3 4 5 6 7 8 9 10 11 12 13
| range = doc.Range(doc.Tables[0].Range.Start, doc.Tables[2].Range.End)
from win32com.client import constants
doc.ActiveWindow.Selection.GoTo(constants.wdGoToHeading, constants.wdGoToNext, 10)
sel = doc.ActiveWindow.Selection.GoToNext(constants.wdGoToHeading)
sel.Paragraphs[0].Range.Text
doc.TablesOfContents[0].Update()
|
参考: * ActiveWindow * constants: WdGoToItem * constants: WdGoToDirection
珍爱生命,我用python。 学会了如何自动化操作word,大批量文档修改也不是一件令人烦心的事情了,O(∩_∩)O~