该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这里有个Word的,,,供你参考:

要使用Python控制MS Word,您需要先安裝win32com套件,這個套件可以到 http://sourceforge.net/projects/pywin32/找到。本文假設您已經正確安裝win32com及相關套件,所以將不再針對此部分多做說明。

毫無疑問的,您需要先import win32com模組才能進行Word的控制。

import win32comfrom win32com.client import Dispatch, constants

接著,要讓我們的Python程式和MS Word建立起連結。

msword = Dispatch('Word.Application')

用Dispatch()的方式將會啟動MS Word。不過,如果您已經有執行MS Word,則此方式只會與現存的MS Word建立連結。如果您強烈希望能夠有一個新的MS Word程式出現,可用下面的方式:

msword = DispatchEx('Word.Application')

此時您會發現畫面上沒有任何MS Word出現,其實他已經在背後執行了。您可以透過工作管理員來查看是否有一個名為"WINWORD.EXE"的Process。不產生畫面的好處是您可 以在背景來處理您要進行的工作。如果您想要看看到底是不是真的有成功的啟動MS Word,請設定Visible屬性。

msword.Visible = 1 # 1表示要顯示畫面,若為0則不顯示畫面。您可以隨時的更改此屬性。

除了不顯示畫面外,您也許還會希望不要顯示一些警告訊息。此時請設定DisplayAlerts屬性:

msword.DisplayAlerts = 0 # 1表示要顯示訊息,0則會隱藏訊息。

若您真的有把畫面叫出來,您或許會發現此時的畫面上是沒有任何文件開啟的。沒錯!前面的動作只是幫助我們啟動Word並且建立連結,接著我們就要來開啟文件了。我們可以開啟已經存在的文件,或者是新增一個空白文件。

doc = msword.Documents.Open(FileName="xxx.doc") # 開啟一個名為xxx.doc的文件。newDoc = msword.Documents.Add() # 開啟一個新的文件。msword.Quit() # 關閉MS Word.

當然,除了開啟檔案或新建文件,您也可以存檔或者控制這些文件。

docCnt = msword.Documents.Count # 取得目前開啟文件的數量。doc = msword.Documents[n] # 取得第n個文件的物件,以便後面的控制。doc.Activate() # 將文件設定為主要工作文件。doc.PrintOut() # 列印文件doc.Save() # 存檔doc.SaveAs('xxx.doc') # 另存新檔doc.Undo(n) # 回復前n次的動作

取得與文件的聯繫,接著我們可以對他進行編輯。不過,我們要能夠先取得編輯的控制權。透過Document的Range()函式,我們可以取得MS Word的Range物件。

range = doc.Range(0, 0) # 取得Range物件,範圍為文件的最開頭。range = doc.Range() # 取得Range物件,範圍為文件的最尾端。range = doc.Range(doc.Content.Start, doc.Content.End) # 取得Range物件,範圍整份文件。

有了Range物件,我們就可以開始進行編輯了。

range.InsertBefore('在range前面插入的文字')range.InsertAfter('在range後面插入的文字')select = range.Select() # 將range的範圍全部選取。並且取得Selection物件。

如果要設定Style,可以透過range物件的Style屬性來設定。

range.Style = constants.wdStyleHeading1 # 設定style為Heading 1range.Style = constants.wdStyleHeading2 # 設定style為Heading 2range.Style = constants.wdStyleHeading3 # 設定style為Heading 3range.Style = constants.wdStyleHeading4 # 設定style為Heading 4range.Style = constants.wdStyleHeading5 # 設定style為Heading 5range.Style = constants.wdStyleHeading6 # 設定style為Heading 6range.Style = constants.wdStyleHeading7 # 設定style為Heading 7range.Style = constants.wdStyleHeading8 # 設定style為Heading 8range.Style = constants.wdStyleHeading9 # 設定style為Heading 9range.ParagraphFormat.Alignment = constants.wdAlignParagraphLeft # 設定段落為靠左range.ParagraphFormat.Alignment = constants.wdAlignParagraphRight # 設定段落為靠右range.ParagraphFormat.Alignment = constants.wdAlignParagraphCenter # 設定段落為置中range.ParagraphFormat.Alignment = constants.wdAlignParagraphJustify # 設定段落為左右對齊range.Style.Font.Name = "Arial" # 設定字型為Arialrange.Style.Font.Name = "Time New Roman" # 設定字型為Time New Romanrange.Style.Font.Name = "標楷體" # 設定字型為標楷體range.Style.Font.Color = 0xFF0000 # 設定字型的顏色為Bluerange.Style.Font.Color = 0x00FF00 # 設定字型的顏色為Greenrange.Style.Font.Color = 0x0000FF # 設定字型的顏色為Redrange.Style.Font.Bold = 1 # 設定字型為粗體字range.Style.Font.Italic = 1 # 設定字型為斜體字range.Style.Font.Underline = 1 # 為字型加底線range.Style.Font.Shadow = 1 # 為字型加陰影range.Style.Font.Outline = 1 # 為字型加外框

如果要插入一個表格,可以用下面的方式來做。

table = doc.Tables.Add(range, 3, 4) # 新增一個3x4表格table.Cell(1,1).Range.InsertAfter('Some text') # 新增文字到cell(1,1)table.Cell(1,1).Range.Font.Name = "Arial" # 設定字型為Arialtable.Cell(1,1).Range.Font.Color = 0xFF0000 # 設定字型為bluetable.Rows.Add() # 新增一個Rowtable.Columns.Add() # 新增一個Column 摘自:http://www.360doc.com/content/14/0727/17/18692661_397450872.shtml

python的dispatch_win32com.client.Dispatch()函数用法相关推荐

  1. Python字符串 isdigit()函数用法

    声明: 因本人为AI路上的新手,文章用于辅助个人的整理记忆,理解难免有偏差之处,都是个人拙见,如给其他同僚造成困扰,还请见谅,非常非常非常欢迎私信共同讨论,共同进步 因此函数用法不难,不罗嗦,直接上代 ...

  2. 【Python】http.client库的用法

    代码: # http.client测试,该库较底层,不常用 import http.clientconn=Nonetry:conn=http.client.HTTPSConnection(" ...

  3. python:for循环和range()函数用法

    本篇介绍Python for循环语句和range函数的使用,文中主要讨论for循环语句,Python的for循环语句类似于shell或是脚本语言中的foreach循环,可以迭代序列对象.使用range ...

  4. python怎么定义split_python split函数用法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...

  5. python 文件操作 os.readlines()函数用法

    引用文章:Python File readlines() 方法

  6. python 文件操作 os.readline()函数用法

    引用文章:Python File readline() 方法

  7. 记录python中itertools中product()函数用法

    product用于对多个可迭代对象中的逐个元素的笛卡尔坐标乘积,这里解释一下,所谓的笛卡尔乘积其实就是类似于(x,y)坐标的这种组合,只不过名字高大上一些.可以理解成是求取多个可迭代对象的排列组合. ...

  8. python threading join_Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...

  9. python中内置函数的用法_python中str内置函数用法总结

    大家在使用python的过程中,应该在敲代码的时候经常遇到str内置函数,为了防止大家搞混,本文整理归纳了str内置函数.1字符串查找类:find.index:2.字符串判断类:islower.isa ...

  10. python func函数用法_Python常见内置高效率函数用法示例

    本文实例讲述了Python常见内置高效率函数用法.分享给大家供大家参考,具体如下: 1.  filter(function,sequence) 将sequence中的每个元素,依次传进function ...

最新文章

  1. c语言输入学生成绩q退出,哭诉、拜求C语言学生成绩管理系统
  2. C# Image 、 byte[] 、Bitmap之间的转化
  3. [BZOJ2326] [HNOI2011] 数学作业 (矩阵乘法)
  4. 数据结构-栈3-栈的应用-就近匹配
  5. 注解@CrossOrigin详解
  6. android实现地图功能实现,Android百度地图应用之基本地图功能实现
  7. 全能电子地图下载器 离线地图 介绍(支持几十种地图下载) 最新版 3.6 (2015.6.13)
  8. 进阶 | 手把手教你模拟键盘和鼠标操作-ActionChains
  9. 无涯社区分享:链网+DID,区块链应用破局的关键 | ArcBlock 活动
  10. word文档在程序未响应的情况下强行关闭未保存怎么恢复?
  11. 利用leafcutter做可变剪切(新手向)
  12. 【论文总结】Enhancing Underwater Imagery using Generative Adversarial Networks
  13. pvs-stdio ue4_PVS-Studio –用于C,C ++,C#和Java的静态代码分析器
  14. flutter APP自动更新
  15. 为了研究而玩:游戏分析的方法
  16. 高等代数 二次型与矩阵的合同(第6章)1 二次型,标准形,规范形
  17. 关于使用条码打印机指令打印汉字的问题
  18. 【开源推荐】XMM Go语言环境中完全自主实现的第三方内存管理库
  19. PTA:7-9 分钟秒钟的时间相减
  20. Java日志——Logback的使用及原理

热门文章

  1. Python——类和对象、魔术方法(day07)
  2. 20190625——特征抽取 主成分分析
  3. 仿邓杰作品(艺家网站)总结
  4. 微信小程序报错“对应的服务器证书无效”
  5. BS模型和CS模型的介绍和区别
  6. Excel:INDEX函数与MATCH函数
  7. JAVA 实现《JAVA打砖块》游戏
  8. ubutun 滑动 触控板_Ubuntu系统的笔记本触摸板怎么调节鼠标光标速度?
  9. 程序架构之redis扩容 (增加端口)
  10. 完美解决Can‘t locate Data/Dumper.pm in @INC