1. 程式人生 > >Python操作Word

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()