win32com操作word之Application&Documents接口学习

 更新时间:2023年01月19日 09:43:07   作者:一灯编程  
这篇文章主要为大家介绍了win32com操作word之Application&Documents接口学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

win32com和微软的word接口文档有什么关系

先回答一个网友私信问题: win32com和微软的word接口文档有什么关系

win32com的底层调用的是word的接口,理论上,想查看win32com的接口情况,只需要看微软官方的文档即可。文档地址: learn.microsoft.com/zh-cn/dotne…

令入门者云里雾里的API关系

微软word接口文档的组织形式说不上有什么问题,但其接口规模巨大(接近900个,每个接口中少则十几个,多则几百个的属性和方法)的接口及错综综复杂的接口 交叉引用足以将一部分入门者拒之门外,着实繁杂。

往往看到一个接口即便有详细的说明,就是无法知晓如何使用,各种尝试也不得要领,往往最常见的问题是:到底谁来调用这个接口。

要想快速抓住word编程的七寸,请一定要认真阅读下方的讲解。

第一点 回忆一下,我们是如何操作一个文档的

  • 1、打开客户端
  • 2、创建或打开一个文档
  • 3、选中某些资源或鼠标点击准备写入内容
  • 4、设置格式:页面设置、字体颜色、缩进等等
  • 5、保存文档
  • 6、关闭客户端

瞧,其实就那么简单,别看文档写得乌泱乌泱的,从文档操作的角度去思考,其实这个事并没有那么复杂。现在只需要记住:

  • Application接口是用来控制客户端的启动和关闭的,甭管它有多少个直接子级API
  • Documents接口是用来创建和打开文档的,通过Application.Documents即可调用。记住创建文档和打开文档回返回一个Document对象,要使用变量接受这个对象,这样才方便我们对这个文档进行操作。

现在再回过来对照,客户端打开了,文档也有了,那使用什么方法来选中资源呢?接口中有Selection和Range可以实现选中文档的资源,官方推荐在文档级编程中,优先使用Range接口。 这不来了嘛,就是用Range接口来选中资源。那么谁才有这个资格来调用Range接口呢?答案是:Document,也就是文档对象,所以上面提到,创建文档或保存文档需要使用变量来接受,就是为了方便后续的操作。

第二点 字体、字号、行间距、页面设置等等这些如何实现呢

先将word的资源分类

  • 1、内容类资源,如文字、图片、表格、图表、形状及公式等
  • 2、文档设置类资源,如页眉页脚、文档页面设置

上方两点分类,通通都能通过Document接口搞定,因为这些资源只在文档中才存在呀,即便是页面设置,也是设置某个文档的!所以,即便看对应的文档,我们也能快速知晓调用者就是Document。 再者,如果选中了某段文字,想为文字设置格式,各种格式也有独立的接口,那么又是谁来调用这些格式接口呢?答案自然是:Range。使用Range选中某个资源,那自然是使用Range来调用这些格式接口。 瞧瞧,就是那么简单。

第二课的代码演示 (并不完全和视频教程中的一样)

ok,进入第二集的代码演示阶段,跟着敲一篇,简单的一批。

Application和Documents接口演示

Applicatioin和Documents是两个入门级API,前者控制客户端,后者保存着所有的文档对象

from win32com.client import Dispatch # 此乃调度器
client = Dispatch('kwps.Application') 
# 如果要启动微软的word客户端可使用下方办法
# client = Dispatch('word.Application')
client.Visible = True
# 到这,客户端已经能启动了,但尚未打开文档
# client是一个客户端对象,即Application对象
# Documents是Application的直接子级API,通过Application直接调用Documents
# 创建一个新文档并返回一个Document对象
d1 = client.Documents.Add() # 有默认参数,正常创建无需传参
# 打开一个文档并返回一个Document对象
d2 = client.Documents.Open(
  FileName=file_name,
)
# Open方法的参数多达15个,第一个参数是需要打开的文档路径,必填参数,文件不存在时抛出异常
# 如果文档要密码才能打开则使用需要将密码传给Open,如下
d2 = client.Documents.Open(
  FileName=file_path,  # 文件路径  
  ConfirmConversions=True, # 文件不是word格式时是否会弹窗要求强制转换格式
  ReadOnly=False, # 是否以只读方式打开
  AddToRecentFiles=True, # 是否将文件添加到“文件”->"最近使用"中
  PasswordDocument='密码' # 所需要的密码
)
# 注:Open还可以使用位置参数传参,其各个参数的位置要严格按照文档参数的位置来设置

此时,我们是不是已经有了两个文档对象了?一个Add方法所创建的d1,一个是Open方法所返回的d2。要想单独操作某个文档,就直接使用变量d1d2去调用Document接口中的方法和属性就OK了。

第一课的内容非常简单,其重点并非是Application和Documents如何使用,而是要建立起一个"用户思维",即再复杂的编程,最后都是给用户使用的,我们站在用户的角度的感受,该如何去操作一个文档:打开文档、操作文档,上方的变量中,d1d2都是要操作的对象,围绕Document这个对象,再去调用各种各样的接口来实现需求。

以上就是win32com操作word之Application&Documents接口学习的详细内容,更多关于win32com操作word接口的资料请关注脚本之家其它相关文章!

相关文章

  • python 写一个文件分发小程序

    python 写一个文件分发小程序

    这篇文章主要介绍了python 写一个文件分发小程序,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-12-12
  • 分析在Python中何种情况下需要使用断言

    分析在Python中何种情况下需要使用断言

    这篇文章主要介绍了分析在Python中何种情况下需要使用断言,以避免在断言使用中经常可能碰到的错误,作者给出了具体代码示例,需要的朋友可以参考下
    2015-04-04
  • python进程管理工具supervisor安装使用

    python进程管理工具supervisor安装使用

    supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程,本文给大家介绍python进程管理工具supervisor安装使用配置教程,感兴趣的朋友一起看看吧
    2023-08-08
  • python-docx修改已存在的Word文档的表格的字体格式方法

    python-docx修改已存在的Word文档的表格的字体格式方法

    今天小编就为大家分享一篇python-docx修改已存在的Word文档的表格的字体格式方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例

    tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例

    今天小编就为大家分享一篇tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python 制作简单的音乐播放器

    python 制作简单的音乐播放器

    这篇文章主要介绍了python 制作简单的音乐播放器,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • python爬虫之请求模块urllib的基本使用

    python爬虫之请求模块urllib的基本使用

    urllib是python内置的HTTP请求库,是一个用来处理网络请求的python标准库,下面这篇文章主要给大家介绍了关于python爬虫之请求模块urllib的基本使用,需要的朋友可以参考下
    2022-04-04
  • python去除字符串中换行符的四种方法

    python去除字符串中换行符的四种方法

    python中换行符的作用就是将字符串划分为上下两行去输出显示,但是在有些情况下是不需要去用到换行符的,这个时候就要用方法将其给去除掉,这一篇文章小编会来给大家介绍一下python去除字符串中换行符的方法,感兴趣的话就一起往下看看吧
    2024-04-04
  • 使用Python pandas读取CSV文件应该注意什么?

    使用Python pandas读取CSV文件应该注意什么?

    本文是给使用pandas的新手而写,主要列出一些常见的问题,根据笔者所踩过的坑,进行归纳总结,希望对读者有所帮助,需要的朋友可以参考下
    2021-06-06
  • Python3 关于pycharm自动导入包快捷设置的方法

    Python3 关于pycharm自动导入包快捷设置的方法

    今天小编就为大家分享一篇Python3 关于pycharm自动导入包快捷设置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论