win32com操作word API精讲 第十集 Paragraphs & Paragraph接口 (一)
本课程《win32com操作word API精讲&项目实战》以视频为主,文字为辅,公众号ID:一灯编程
在word编程中,Range
和Paragraph(s)
接口无愧于劳模接口
的称谓。大部分的接口都将Range
封装成了属性,如页眉页脚、页面设置、正文内容、批注、图片、表格、公式、图形等等,有了Range
属性,方便我们使用Range
的方法和属性去操作它们。
Paragraphs(s)概述
Paragraphs接口能做什么
Paragraphs
表示段落对象的集合,有三个接口有Paragraphs
属性,分别为Range
、Selection
、Document
,这些接口的实例对象使用该属性就能获得各自范围内的全部段落了。下面为伪代码演示:
from win32com.client import Dispatch
client = Dispatch('word.Application')
client.Visible = 1
doc = client.Documents.Open('demo.doc')
# 统计Selection中有多少个段落
s = client.Selection
s.Start = 0
s.End = 10
print(s.Paragraphs.Count)
>>>1
# 统计Range中有多少个段落
rng = doc.Range(0,2)
print(rng.Paragraphs.Count)
>>>1
# 统计整个文档中有多少个段落
print(doc.Paragraphs.Count)
>>>8
Paragraphs和Paragrap有什么关系
复数表示所有段落,是一个集合,单数表示单个段落对象。Paragraph
也是一个独立的接口,两者大部分都属性和方法都是共用的。下面伪代码演示了,如何通过Paragraphs
获得某个Paragraph
对象。
from win32com.client import Dispatch
client = Dispatch('word.Application')
client.Visible = 1
doc = client.Documents.Open('demo.doc')
# 谋取某个段落 以第一段举例
p1 = doc.Paragraphs(1)
p1 = doc.Paragraphs.Item(1)
p1 = doc.Paragraphs.First
p1 = doc.Paragraphs[0]
两者之间最明显的区别是,Paragraph
有Range
属性,我们可以很方便地将某个段落转换成Range
属性从而使用Range
的属性和方法来操作该段落,而Paragraphs
并没有。
word编程中段落是什么
在word编程中,但凡带有\r
段落标记的都是段落,不仅仅文本的结束才会有段落标记,图片、表格、公式等资源,只要处于末尾,都会以段落标记结束。假若我已经打开了下方的文档,并通过接口获取第二段:
from win32com.client import Dispatch
client = Dispatch('word.Application')
client.Visible = 1
doc = client.Documents.Open('demo.doc')
print(doc.Paragraphs(2))
>>>'\r'
看起来第二段并无内容,但实际上它包含一个段落标记,段落标记也是段落内容,尤其在做文本比较的时候切勿忘记这点。同时,我们在使用Count
属性统计段落数量时,如果文档中包含空段落的话,那么空段落一定被统计进来。
特殊情况:一个单元格也会被统计成一个段落,切记。
接口之间的相互转换
实际开发中,有不少接口之间是可以相互转换的,这极大地方便了我们的操作,如:
- Range可以转换成Paragraphs
- Paragraph从Paragraphs中获得
- Paragraph可以转换成Range
这些转换都是通过使用属性完成的,如Paragraph
的Range
属性会返回一个Range
对象,意味着该段落也可以使用Range
的属性和方法,Range
的Paragraphs
属性会返回一个Paragraphs
对象,意味着该范围也可以使用Paragraphs
的属性和方法来。
这种转换非常方便,有不少的接口都有Range
属性。
ok,今天的内容就先到这,下节课我们接着讲。有问题请留言、私信。
win32com操作word API精讲 第十集 Paragraphs & Paragraph接口 (一)的更多相关文章
- WKWebView API精讲(OC)
WKWebView API精讲(OC) 前言 鉴于LL同志对笔者说:“能不能写个OC版本的WKWebView的使用教程?”,还积极打赏了30RMB,笔者又怎么好意思拒绝呢,于是才有了下文. 所有看到本 ...
- win32com操作word(1):几个重要的对象(28.35)
Pywin32模块为python封装了操作windows底层API函数的功能.而win32com是Pywin32下面的一个模块,专门负责操作com组件. 由于office工具(Word.Excel等) ...
- win32com操作word(3):导入VBA常量
导入VBA常量方法:http://blog.sina.com.cn/s/blog_a73687bc0101k8x8.html 我们之前说过,win32com组件为python提供处理COM组件(.dl ...
- win32com操作word(2):常用用法
一.对象的位置关系: 1.Range属性位于(部分): Selection__Section__Cell__Paragraph__Table__Bookmark__Comment__Row__List ...
- Java文件操作系列[3]——使用jacob操作word文档
Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...
- 第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页
第三百七十节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索结果分页 逻辑处理函数 计算搜索耗时 在开始搜索前:start_time ...
- 第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能
第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能 Django实现搜索功能 1.在Django配置搜索结果页的路由映 ...
- 第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能
第三百六十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—用Django实现搜索的自动补全功能 elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.e ...
- 第三百六十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作
第三百六十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作 注意:前面讲到的各种操作都是一次http请求操作一条数据,如果想 ...
随机推荐
- Ruoyi表单构建
Ruoyi表单构建通过拖动组件就能自动生成前端代码,很方便,所以本文简单通过上层函数源码来梳理一下大致流程,如有需要再自行仔细一行行分析底层代码. 组件拖动 实现组件拖动功能主要依赖第三方库:VueD ...
- Python基础之函数:6、异常相关和生成器对象、yield用法、生成器表达式
目录 一.异常常见类型 1.类型错误 2.缩进错误 3.索引错误 4.语法错误 5.属性错误 6.key键错误 二.异常处理语法结构 1.基本语法结构 2.查看错误类型 3.针对不同类型所作措施 4. ...
- vue 项目中,后端返回文件流,导出excel
之前写过文件流导出excel,这次直接把上次的代码拿过来复制粘贴,但是导出的表格里面没有数据,只显示undefined. 这是之前的代码 // api接口页面 // excel导出接口 export ...
- ubuntu 22.04安装多个gcc
sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 - ...
- OpenCV之C++经典案例
四个案例实战 1.刀片缺陷检测 2.自定义对象检测 3.实时二维码检测 4.图像分割与色彩提取 1.刀片缺陷检测 问题分析 解决思路 尝试二值图像分析 模板匹配技术 代码实现 #include < ...
- 关于mysql数据库user表没有password字段
解决 这个是因为mysql的版本问题,是mysql 5.7版本出现的,具体是mysql 5.7.x 开始变化的我不知道 新的字段变更为authentication_string 修改密码的方式还是和原 ...
- orcl substr函数与java substring 的不同
前天事情急改一个存储过程时遇到了substr方法时,一直用好,然后用其他方法跳过去了,今天有时间回头来验证 才发现和java太不一样了! select substr('为中华之崛起而读书',2,4) ...
- 运用领域模型——DDD
模型被用来描述人们所关注的现实或想法的某个方面.模型是一种简化.它是对现实的解释 -- 把与解决问题密切相关的方面抽象出来,而忽略无关的细节. 每个软件程序是为了执行用户的某项活动,或是满足客户的某种 ...
- Linux 基础-文件权限与属性
一,文件类型 1.1,概述 1.2,正规文件(regular file) 1.3,目录(directory) 1.4,链接文件(link) 1.5,设备与装置文件(device) 1.6,资料接口文件 ...
- VideoPipe可视化视频结构化框架更新总结(2022-12-9)
项目地址:https://github.com/sherlockchou86/video_pipe_c 往期文章:https://www.cnblogs.com/xiaozhi_5638/p/1685 ...