win32com初步word应用
时间:2010-08-18 来源:stlaw
pywin32 可以在http://sourceforge.net/projects/pywin32/files/ 下载;
搜到1个替换图片的方法
http://www.eggheadcafe.com/software/aspnet/35650384/replace-picture-in-content-control.aspx
里面的ContentControls是不可用的,本地为office2003
下面是目前知道的一些记录,复杂的还不知如何用,
官网的VBA文档:
http://msdn.microsoft.com/en-us/library/aa272078%28v=office.11%29.aspx
===============================
import win32com
from win32com import client
w=win32com.client.Dispatch('Word.Application')
w.Visible=1
#doc = w.Documents.Open('e:\\1.doc')
doc = w.Documents.Add()
r=doc.Range() # 用此可以清空文档中所有内容,Range(x,y)其中x,y为段落或者字符?尚不能确定
r.Text='all clear!'
objsel = w.Selection
objsel.EndKey() #为当前光标所在行的最后,并非文档最后
objsel.TypeText('insert first pic')
objsel.TypeParagraph() # 插入回车
objsel.InsertBreak() # 插入页
objshape = doc.Shapes
p1 = objshape.AddPicture('e:\\1.jpeg') #通过这种doc.shapes的方式,图片插入的位置在文档开头
objsel.TypeParagraph()
dc=w.ActiveDocument.Content #取得当前活动文档的内容句柄
dc.Font.Size=15 # 设置文档的文字大小(影响全文的大小)
newpl = objsel.InlineShapes.AddPicture('e:\\1.jpeg') #而这种通过selection的插入图片方式,插入的位置是在光标位置;
objsel.TypeParagraph()
objsel.TypeText('insert second pic')
# 关于bookmarks
#http://msdn.microsoft.com/en-us/library/aa221389%28v=office.11%29.aspx
if w.ActiveDocument.Bookmarks.Exists('book1'):
w.ActiveDocument.Bookmarks('book1').Select()
w.Selection.InlineShapes.AddPicture('e:\\1.jpeg') # 如果存在对应的bookmark,就替换成图片1.jpeg
# 关于InlineShapes
#http://msdn.microsoft.com/en-us/library/aa221990%28v=office.11%29.aspx
w.ActiveDocument.InlineShapes.Count #得到文中所有图片
#w.ActiveDocument.InlineShapes[0].Delete()
w.ActiveDocument.InlineShapes[0].Select()
w.Selection.InlineShapes.AddPicture('e:\\1.jpeg') #按序号替换图片
doc.SaveAs('e:\\1.doc')
=================================
搜到1个替换图片的方法
http://www.eggheadcafe.com/software/aspnet/35650384/replace-picture-in-content-control.aspx
里面的ContentControls是不可用的,本地为office2003
下面是目前知道的一些记录,复杂的还不知如何用,
官网的VBA文档:
http://msdn.microsoft.com/en-us/library/aa272078%28v=office.11%29.aspx
===============================
import win32com
from win32com import client
w=win32com.client.Dispatch('Word.Application')
w.Visible=1
#doc = w.Documents.Open('e:\\1.doc')
doc = w.Documents.Add()
r=doc.Range() # 用此可以清空文档中所有内容,Range(x,y)其中x,y为段落或者字符?尚不能确定
r.Text='all clear!'
objsel = w.Selection
objsel.EndKey() #为当前光标所在行的最后,并非文档最后
objsel.TypeText('insert first pic')
objsel.TypeParagraph() # 插入回车
objsel.InsertBreak() # 插入页
objshape = doc.Shapes
p1 = objshape.AddPicture('e:\\1.jpeg') #通过这种doc.shapes的方式,图片插入的位置在文档开头
objsel.TypeParagraph()
dc=w.ActiveDocument.Content #取得当前活动文档的内容句柄
dc.Font.Size=15 # 设置文档的文字大小(影响全文的大小)
newpl = objsel.InlineShapes.AddPicture('e:\\1.jpeg') #而这种通过selection的插入图片方式,插入的位置是在光标位置;
objsel.TypeParagraph()
objsel.TypeText('insert second pic')
# 关于bookmarks
#http://msdn.microsoft.com/en-us/library/aa221389%28v=office.11%29.aspx
if w.ActiveDocument.Bookmarks.Exists('book1'):
w.ActiveDocument.Bookmarks('book1').Select()
w.Selection.InlineShapes.AddPicture('e:\\1.jpeg') # 如果存在对应的bookmark,就替换成图片1.jpeg
# 关于InlineShapes
#http://msdn.microsoft.com/en-us/library/aa221990%28v=office.11%29.aspx
w.ActiveDocument.InlineShapes.Count #得到文中所有图片
#w.ActiveDocument.InlineShapes[0].Delete()
w.ActiveDocument.InlineShapes[0].Select()
w.Selection.InlineShapes.AddPicture('e:\\1.jpeg') #按序号替换图片
doc.SaveAs('e:\\1.doc')
=================================
相关阅读 更多 +