python读取word的自动编号以及添加自动编号

news2024/11/13 2:47:38

目录

1、读取编号

读取示例

如何判断段落是否有自动编号呢?

如何区分不同的类型编号呢?

2、添加自动编号


有的时候需要提取word中带自动编号的信息。对于word中的文字很多第三方的库都可以搞定,但是,提取格式,可能还是要用pywin32来搞定。

首先,需要知道自动编号的对象名称,即ListFormat。

注意区分一下ListFormat的2个属性:ListString和ListValue。看名字,感觉有点相似。

访问listformat的ListString,能获取到编号的字符串,即你看到word文档中编号的字符串,例如“1)”

而,ListValue,则读取到的是编号的值,例如文档中“5)”的编号,读取到的是5。

具体用哪个,就看个人需求。

1、读取编号

读取示例

示例文档内容,其中包含带编号的段落以及普通文本:

读取的效果:

可以看到正文行打印的结果为空字符串。

脚本:

import win32com.client as win32
from win32com.client import constants
import os

curr_path = os.getcwd()
path = r'%s\带编号.docx'%curr_path
doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序
doc_app.Visible =1#设置应用程序可见
doc = doc_app.Documents.Open(path, ReadOnly=True)#打开文档

parags = doc.Paragraphs
for parg in parags:
	print(parg.Range.ListFormat.ListString)


如何判断段落是否有自动编号呢?

如果没有编号,则ListString返回的是空字符,即“”。

如何区分不同的类型编号呢?

可以使用属性ListType,不同的类型,返回值会不同。


对于使用pywin32库,最多的问题是,不知道word中,要操作的对象是什么名字,这个可以开启word的开发模式,录制一个宏。开启录制后,鼠标点击你要处理的对象,然后保存,就能看到vba代码了,然后看看里面用到什么对象,就可以很方便的查阅资料,搞定它了。

2、添加自动编号

还是以类似的文档为示例,先准备一个没有编号的文档。用脚本为其添加编号

import win32com.client as win32
from win32com.client import constants
import os 

doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序
doc_app.Visible = True
current_path = os.getcwd()
doc = doc_app.Documents.Open(current_path+r"\不带编号.docx")

ListGalleries = doc_app.ListGalleries 
template = ListGalleries(constants.wdNumberGallery)
for parag in doc.Paragraphs:
	rng = parag.Range
	rng.ListFormat.ApplyListTemplate(ListTemplate=template.ListTemplates(1))

ListGalleries可以选择三种类型:

分别对应word中的这三种:

ListTemplates(1)指向的是编号列表中的第一种样式,与word程序中列表样式的排序一致。

示例中的运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2237897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ImportError: cannot import name ‘packaging‘ from ‘pkg_resources‘ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境: Ubuntu20.04 ROS-Noetic 一、问题描述 自己在通过 pip install 安装module时 (使用的是 pip install mmcv)遇到如下问题: ImportError: cannot …

【论文笔记】Wings: Learning Multimodal LLMs without Text-only Forgetting

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Wings: Learning Multimod…

Tomasulo算法介绍

Tomasulo算法详细解释 #mermaid-svg-x5G4yi740f0ju3OB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x5G4yi740f0ju3OB .error-icon{fill:#552222;}#mermaid-svg-x5G4yi740f0ju3OB .error-text{fill:#552222;strok…

【C++练习】二进制到十进制的转换器

题目:二进制到十进制的转换器 描述 编写一个程序,将用户输入的8位二进制数转换成对应的十进制数并输出。如果用户输入的二进制数不是8位,则程序应提示用户输入无效,并终止运行。 要求 程序应首先提示用户输入一个8位二进制数。…

量子计算包kaiwu安装过程踩过的坑

目录 1 安装过程 2 官方代码测试 3 踩坑说明 首先,目前的kaiwu版本仅支持python3.8,所以必须要下载python3.8才能运行kaiwu 1 安装过程 step1: 在页面的SDK标签下,找到对应操作系统的kaiwu包。 step2: 下载python3.8到本地,可…

全文检索ElasticSearch到底是什么?

学习ElasticSearch之前,我们先来了解一下搜索 1 搜索是什么 ① 概念:用户输入想要的关键词,返回含有该关键词的所有信息。 ② 场景: ​ 1互联网搜索:谷歌、百度、各种新闻首页; ​ 2 站内搜索&#xff…

海鲜特写镜头视频素材去哪找 热门视频素材网站分享

作为美食自媒体创作者,海鲜特写镜头的视频素材无疑是提升内容吸引力和质量的重要利器。无论你想展示新鲜的海鲜原料、精美的烹饪过程,还是诱人的餐桌美食,精致的海鲜特写镜头都能极大地吸引观众的注意力。那么,问题来了&#xff1…

Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称

常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…

SH3001姿态解算

姿态角,机体坐标系相对于参考坐标系的角度 旋转的非交换性 姿态角指的是载体坐标系与参考系之间的关系, 欧拉角是描述物体与某个轴(X,Y,Z)的关系,欧拉角属于姿态角的一种常见描述形式,另外两种描述形式就是四元数和和旋转矩阵 飞…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-19

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…

电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远…

【C/C++】memcpy函数的使用

零.导言 当我们学习了strcpy和strncpy函数后,也许会疑惑整形数组要如何拷贝,而今天我将讲解的memcpy函数便可以拷贝整形数组。 一.memcpy函数的使用 memcpy函数是一种C语言内存函数,可以按字节拷贝任意类型的数组,比如整形数组。 …

【数据分享】1901-2023年我国省市县镇四级的逐年降水数据(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月降水栅格数据和Shp和Excel格式的省市县四级逐月降水数据,原始的逐月降水栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年累计值的方法得到逐年降水栅格数据&#…

【Qt问题】解决 Cannot retrieve debugging output

【Qt问题】解决 Cannot retrieve debugging output Chapter1 【Qt问题】解决 Cannot retrieve debugging output方案1 关闭其他Qt工程实例(等于没说)方案2 在PRO文件中,加上CONFIG console Chapter1 【Qt问题】解决 Cannot retrieve debuggi…

软考中级 软件设计师 上午考试内容笔记(个人向)Part.3

软考上午考试内容 7. 网络安全 威胁名称描述恶意攻击(ARP)所截获的合法通信数据拷贝,出于非法的目的而被重新发送。拒绝服务(DOS)对信息或其它资源的合法访问被无条件地阻止。窃听用户可利用合法或非法的手段窃取系统中…

第四十章 Vue之使用ESLint修正代码规范

目录 一、引言 二、前端开发规范 三、ESLint规范工具 四、ESLint规范错误解决方式 4.1. 手动修正 4.2. 自动修正 JavaScript Standard Style 规范说明地址: https://standardjs.com/rules-zhcn.html 一、引言 在我们实际项目的开发过程中,统一标…

力扣题目解析--删除链表的倒数第n个节点

题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&…

web实操5——http数据详解,request对象功能

http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…

大语言模型LLMs在医学领域的最新进展总结

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 相比其他学科,医学AI,是发表学术成果最多的领域。 医学数据的多样性和复杂性(包括文本、图像、基因组数据等),使得…