Python操作Word
首先別忘了裝win32com的庫。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
importwin32com.client
import os
#--------------------------------------------------------------------------
class easyWord:
'''
Some convenience methods for Excel documentsaccessed
through COM.
'''
def __init__(self,visible=False):
self.wdApp =win32com.client.Dispatch('Word.Application')
self.wdApp.Visible = visible
def new(self,filename=None):
'''
Create a new Word document. If 'filename'specified,
use the file as a template.
'''
if filename:
return self.wdApp.Documents.Add(filename)
else:
return self.wdApp.Documents.Add()
def open(self,filename):
'''
Open an existing Word document forediting.
'''
return self.wdApp.Documents.Open(filename)
def visible(self,visible=True):
self.wdApp.Visible = visible
def find(self,text,MatchWildcards=False):
'''
Find the string
'''
find = self.wdApp.Selection.Find
find.ClearFormatting()
find.Execute(text, False, False, MatchWildcards, False, False,True, 0)
return self.wdApp.Selection.Text
def replaceAll(self,oldStr,newStr):
'''
Find the oldStr and replace with thenewStr.
'''
find = self.wdApp.Selection.Find
find.ClearFormatting()
find.Replacement.ClearFormatting()
find.Execute(oldStr, False, False, False, False, False, True, 1,True, newStr, 2)
def updateToc(self):
for tocitem inself.wdApp.ActiveDocument.TablesOfContents:
tocitem.Update()
def save(self):
'''
Save the active document
'''
self.wdApp.ActiveDocument.Save()
defsaveAs(self,filename,delete_existing=True):
'''
Save the active document as a differentfilename.
If 'delete_existing' is specified and the filealready
exists, it will be deleted before saving.
'''
if delete_existing andos.path.exists(filename):
os.remove(filename)
self.wdApp.ActiveDocument.SaveAs(FileName=filename)
def close(self):
'''
Close the active workbook.
'''
self.wdApp.ActiveDocument.Close()
def quit(self):
'''
Quit Word
'''
return self.wdApp.Quit()