分享我的生活
分享能使人快乐

Python对word的操作

Python通过window软件的一些公共api来操作word的一些方法

首先需要安装win32com,通过它才能使python操作win软件

安装方法http://jingyan.baidu.com/article/22fe7ced1ca36b3003617f7a.html

主要注意的是选对对应系统的版本,对应python版本的版本

基础的就不写了直接拷贝过来吧

import win32com

from win32com.client import Dispatch, constants

 

w = win32com.client.Dispatch(‘Word.Application’)

# 或者使用下面的方法,使用启动独立的进程:

# w = win32com.client.DispatchEx(‘Word.Application’)

 

# 后台运行,不显示,不警告

w.Visible = 0

w.DisplayAlerts = 0

 

# 打开新的文件

doc = w.Documents.Open( FileName = filenamein )

# worddoc = w.Documents.Add() # 创建新的文档

 

# 插入文字

myRange = doc.Range(0,0)

myRange.InsertBefore(‘Hello from Python!’)

 

# 使用样式

wordSel = myRange.Select()

wordSel.Style = constants.wdStyleHeading1

 

# 正文文字替换

w.Selection.Find.ClearFormatting()

w.Selection.Find.Replacement.ClearFormatting()

w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)

 

# 页眉文字替换

w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()

w.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting()

w.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute(OldStr, False, False, False, False, False, True, 1, False, NewStr, 2)

 

# 表格操作

doc.Tables[0].Rows[0].Cells[0].Range.Text =’123123′

worddoc.Tables[0].Rows.Add() # 增加一行

 

# 转换为html

wc = win32com.client.constants

w.ActiveDocument.WebOptions.RelyOnCSS = 1

w.ActiveDocument.WebOptions.OptimizeForBrowser = 1

w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4

w.ActiveDocument.WebOptions.OrganizeInFolder = 0

w.ActiveDocument.WebOptions.UseLongFileNames = 1

w.ActiveDocument.WebOptions.RelyOnVML = 0

w.ActiveDocument.WebOptions.AllowPNG = 1

w.ActiveDocument.SaveAs( FileName = filenameout, FileFormat = wc.wdFormatHTML )

 

# 打印

doc.PrintOut()

 

# 关闭

# doc.Close()

w.Documents.Close(wc.wdDoNotSaveChanges)

w.Quit()

拷贝自 http://blog.csdn.net/qq404766692/article/details/8365542

下面中的注释部分是我的心得

import win32com,sys

from win32com.client import Dispatch,constants

word=win32com.client.Dispatch(‘Word.Application’)

word.displayalerts=0

word.visible=0

filepath = ‘D:\py\pbms/4.docx’

doc = word.Documents.Open(FileName = filepath )

doc.Activate()###将打开的文件放置到最前端,将后面的操作都指定在这个文件中

doo = word.Selection###指定word软件中可用的某个对象,现在使用的selection对象,对象起名doo

iiii = doo.Information(4)###把对象中的properties中的数值取出来,具体参见”word 2013 developer docs”/word 2013 referance

###如果需要操作的话就使用doo.methods

print(iiii)###显示文档的总页数

word.Quit()

主要体会是学会了怎么用python链接软件中对应的对象,如何使用对象中的properties和methods(方法)

上面的心得得益于此文http://hi.baidu.com/billschen/item/a08150f8bf9aeb1aa62988e0,上面的图片也来源于此文。

我的代码放置于https://github.com/xinyu3ru/py-box-manage-software/tree/master/pythonprintword 要看代码注释哟

 

 

赞(0)
未经允许不得转载:RUBLOG-分享我的生活 » Python对word的操作

我想说 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    哇,github.
    com操作,我一般都是vbs录制下来宏,然后把宏翻译成要写的语言。

    likaci5年前 (2014-06-05)Reply
    • github对我就是玩的,会录制宏也不错,只要能达到自己的要求就行

      xinyu2ru5年前 (2014-06-06)Reply