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 要看代码注释哟
版权声明:
作者:xinyu2ru
链接:https://www.rxx0.com/motion/python-dui-word-di-cao-zuo.html
来源:RUBLOG-分享我的生活
文章版权归作者所有,未经允许请勿转载。
likaci
哇,github.
com操作,我一般都是vbs录制下来宏,然后把宏翻译成要写的语言。
xinyu2ru@likaci
github对我就是玩的,会录制宏也不错,只要能达到自己的要求就行