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请求操作一条数据,如果想 ...
 
随机推荐
- Unreal NetMode&NetRole 解析
			
Version: Unreal 4.26 问题 为啥UE编辑器会有EPlayNetMode有三种让你选择. 为啥描述World 的ENetMode 会有4种,而不只是(Client/Server 2种 ...
 - 抓包分析 TCP 握手和挥手
			
前言 首先需要明确的是 TCP 是一个可靠传输协议,它的所有特点最终都是为了这个可靠传输服务.在网上看到过很多文章讲 TCP 连接的三次握手和断开连接的四次挥手,但是都太过于理论,看完感觉总是似懂非懂 ...
 - Linux系统安装python
			
1. 安装python3 1.1 下载python3安装包及其依赖包(该步骤可忽略,步骤1.2 提供应用包链接) ① 在python官网下载所需的python3,或者用外网centos机器的wget命 ...
 - 2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred) J. Job Lookup
			
题意 n个节点,n<=200,你需要构造这n个几点成为一棵树,并且这棵树的中序遍历为1-n; 你构造树的节点之间的最短路构成一个n×n的最短距离矩阵d: 同时给你n×n的权重矩阵c:最最小的Σd ...
 - 微信小程序的学习(二)
			
一.数据绑定 1.数据绑定的基本原则 在 data 中定义数据 在 wxml 中使用数据 2.如何在 data 里面定义数据? 在页面对应的 .js 文件中,把数据定义到 data 对象中即可: 3. ...
 - 1B踩坑大王
			
题目链接 题目大意: 人们常用的电子表格软件(比如: Excel)采用如下所述的坐标系统: 第一列被标为 A,第二列为 B,以此类推,第 262626 列为 Z.接下来为由两个字母构成的列号: 第 2 ...
 - day18-web工程路径
			
web工程路径 配置tomcat运行快捷键 tomcat启动的默认快捷键时shift+f10,可以自定义配置:file-setting-keymap-搜索run,找到右边写有shift+f10的选项, ...
 - 【Java并发010】使用层面:发令枪CountDownLatch全解析
			
一.前言 CountDownLatch是在java1.5被引入,存在于java.util.cucurrent包中,跟它一起被引入的工具类还有CyclicBarrier.Semaphore.concur ...
 - 【Java并发007】原理层面:ReentrantLock中lock()、unlock()全解析
			
一.前言 Java线程同步两种方式,synchronized关键字和Lock锁机制,其中,AQS队列就是Lock锁实现公平加锁的底层支持. 二.AQS源码对于lock.lock()的实现 2.1 AQ ...
 - dfs 序
			
dfs序可以\(O(1)\)判断书上两个点的从属关系 Tree Queries 题面翻译 给你一个以\(1\)为根的有根树. 每回询问\(k\)个节点\({v_1, v_2 \cdots v_k}\) ...