首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

win32com操作word 第三集:Range精讲(一)

文字分享与视频内容的顺序与例子稍有不同

本集开始,将会深入接口。打开或创建一个文档都会产生一个对象,它代表文档本身,所以绝大部分文档的操作都会依赖该接口,它的属性和方法共计个!说不上很多,但它大部分的接口和属性都是一个个独立接口封装而成的。

但不必担忧,官方的文档中显示,有一部分接口是用于客户端级编程的,我们只需要学习部分接口足以满足各种类型的文档级开发需求了。

Range是什么

这是本节课要讲的接口,它是Document的方法,但其本身也是一个独立的接口,方法和属性共计183个。这个接口简直是word接口中的劳模。它表示资源选中或插入点,可以理解为一个看不见的鼠标,但它比鼠标的作用强大多了。官方也提供了接口,这是正儿八经的鼠标,它能和鼠标交互,个人认为适合用在的场景,的场景还是好用。

Range的作用

操作文档中的资源,如选中一段文字,在实操中,得先鼠标选中文字。在word编程中,使用就能实现资源的选中,是,可不是,最近的一个实例不会覆盖前面的实例,每个实例都是独立存在的。

Range声明范围的三种形式

此时,客户端上已经创建了一个新文档,为了方便演示,先在文档中粘贴一段新闻:

总部大楼内唯一对外开放的部分,是著名的火器博物馆。它共有15个展室,收藏着3000件曾经叱咤美国各个历史时期的著名枪械和部分外国名枪。其中,“前总统收藏专区”更是显示出这一协会与美国政界的紧密联系。在美国历史上,有九位总统曾是该协会的会员,分别是:格兰特、西奥多·罗斯福、塔夫脱、艾森豪威尔、肯尼迪、尼克松、里根、老布什。还有一位,就是上任总统特朗普。要让这么多总统站台,背后往来的金钱可不是小数目。数据显示,美国全国步枪协会在2016年总统选举中捐出的竞选资金高达5440万美元,其中,他们为特朗普砸下了3000万美元。

使用Range声明文档全选

没什么可讲的,真的太简单了,如果你刚接触Python不久且无其他编程语言基础,那么只需要记住,接口返回一个对象,表示当前被选中的内容,仅此。

使用Range声明选择某范围资源

用法 Range(Start: int, End: int) -> Range

和表示字符,表示选择了从开始,截至的范围。

使用Range声明一个无内容的范围:插入点

当起始位置和结束位置一样时,中就无内容了,它是一个点,这种插入点通常用来往插入点写入内容。这样做很方便,不必担心因为误操作而导致范围中的内容被替换。

Range.Text属性

属性内部有,可以使用该属性来获取或设置范围中的内容。打印实例时,会返回一个,看不到实例细节,此时可以使用属性查看范围中的文本。

使用Text属性获取范围中的内容

Range.Start & Range.End 属性

两个属性分别可以获取或设置范围的起始位置和结束位置,在实操中,有时候的范围并不是通过这种方式来声明的,而是某种方式,比如使用获得文章第一段,而某些操作只能在对象下才能操作,那么可以使用,将第一段的转换成了对象,此时就可以通过来获得范围的结束位置啦。

当然,这两个属性也是实现了方法的,意味着可以通过为属性赋值来改变的范围。

更改Range的范围

在word编程中,更改范围是常规操作,上面的和属性可以实现,但复杂的需求和编程环境是不允许我们来的,这不现实。所以,微软官方提供了非常丰富的接口来实现范围的更改,比如,下面要讲的和方法。

MoveStart & MoveEnd方法

1、MoveStart(Unit=1, Count=1)

该方法可以改变范围的起始位置,可以扩大范围也可以减少范围,参数说明:

Unit:按什么单位移动,表示字符,表示句子,表示段落,

Count:执行一次要移动多少个Unit,正数表示往前移动(文档结束的方向),负数表示往后移动(文档开头的方向)

2、MoveEnd(Unit=1, Count=1)

参数和一模一样。

演示

明明只移动了起始位置,但为何结束位置从原来的4也变成了262字符位置了呢?请看下方说明:

说明无论是MoveStart还是MoveEnd,如果一方的位置超越了另一方,两个点就会重叠并形成插入点,最后一起移动到目标位置,不可能会出现结束位置小于起始位置这种匪夷所思的情况。

这种玩法就很妙,意味着,我们不需要在意到底要就可以轻松获得一个的范围。

使用Range写入文本

Range.Text重新赋值实现插入

前面所示,可以使用Range.Text属性重新赋值,这很简单,就演示个伪代码吧。

注意:除非你想替换范围中的内容,否则不要轻易使用有内容的范围来执行语句。

InsertBefore和InsertAfter方法插入

这两个方法是为量身定做的。

InsertBefore:在范围的起始位置插入内容

InsertAfter:在范围的结束位置插入内容

我想,千言万语不如一张图来得直接(懒)。

注意:两个方法会扩大原来的范围

插入段落标记

另起一段是word编辑中常用的功能,使用回车即可实现,在word编程中,有三个方法可以实现的。

InertParagraph

使用段落标记替换原来范围中的内容,并形成新段落。

该方法适用于插入点,因为它会使用自动执行以下代码:

意味着,会替换原来范围中的内容,除非有这个必要。执行这个方法后,从字符开始,后面的内容都会另起一段。

InsertParagraphBefore

在范围起始位置插入一个段落标记,意思是在原来内容的基础上,在起始位置插入一个,那么当前范围会形成一个新段落,假如原来的内容为,执行该方法后,内容为。

InsertParagraphAfter

和InsertParagraphBefore相反,它会在结束位置插入,作用完全一样,不作演示。

最后

需要讲的内容很多,仅接口就能讲很多集。学习不能急,但也不能懒,代码敲起来,没有学不会的内容。

好啦,我们下节课接着讲。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230118A03DQE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券