首页 > 编程语言 >python在word文档中插入题注和查找题注

python在word文档中插入题注和查找题注

时间:2024-10-19 10:49:59浏览次数:3  
标签:题注 word python doc 插入 文档 parag

目录

1、打开word文档

2、在文档中为图片插入题注

3、在文档中为表格插入题注

4、遍历所有题注

5、更新题注编号


在自动化处理word时,可以使用脚本为word文档中图片和表格插入题注;也可以查找word文档中已经插入的题注,查看并修改。

1、打开word文档

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

curr_path = os.getcwd()
doc_app = win32.gencache.EnsureDispatch('Word.Application')#打开word应用程序
doc_app.Visible =1#设置应用程序可见
doc = doc_app.Documents.Open(r'%s\批量插入题注示例文档.docx'%curr_path)#创建新得文档

word文档未插入前的状态:

插入后的效果:

2、在文档中为图片插入题注

pic_cap_label = doc_app.CaptionLabels.Add('图')
for item in doc.InlineShapes:
	if(item.Type == constants.wdInlineShapePicture):
		rng = item.Range
		rng.InsertCaption(Label= pic_cap_label,Position=constants.wdCaptionPositionBelow,Title="咖啡杯")

Position参数决定了题注插入的位置。这里图片的题注是在下方插入的。

遍历图片的方法,对于一些文档中还包含其他的类型的InlineShape的,还需要使用Type类型过滤。其他的类型分类如下:

3、在文档中为表格插入题注

tab_cap_label = doc_app.CaptionLabels.Add('表')# 添加自定的题注
for table in doc.Tables:
	rng = table.Range
	rng.InsertCaption(Label= tab_cap_label,Position=constants.wdCaptionPositionAbove,Title="省份省会表")

 使用for遍历所有的表,然后在表格上面插入题注。Tables只包含表格, 就没有type的判断。

4、遍历所有题注

查找题注时,我尝试过使用Find.Execute来搜索,但是没有起效。只找到一种比较笨的方法,就是遍历每一行的style。在文档中,插图的题注,整个段落的style都是统一的。

for parag in doc.Paragraphs:
	# if(parag.Style==doc_app.ActiveDocument.Styles('题注')):# 这种判断条件无法起效
	if(parag.Style.NameLocal =='题注'):
		print(parag.Range.Text[:-1]) #去除段尾的换行符

 这里在判断style时,发现使用NameLocal可以正常判断。NameLocal就是word中看到的样式名称。此外,直接使用style变量进行比较,不知道为什么无法区分开样式。

5、更新题注编号

for parag in doc.Paragraphs:
	
	if(parag.Style.NameLocal =='题注'):
		parag.Range.Fields.Update()

除了逐个段遍历,还可以直接全文整体更新。

doc.Content.Fields.Update()

标签:题注,word,python,doc,插入,文档,parag
From: https://blog.csdn.net/flashman911/article/details/143067790

相关文章

  • 电子学会代码编程Python等级考试24年9月一级真题和答案解析
    1.下列选项中关于turtle.color('red')语句的作⽤描述正确的是?()A.只设置画笔的颜⾊为红⾊B.只设置填充的颜⾊为红⾊C.设置画笔和填充的颜⾊为红⾊D.设置画笔的颜⾊为红⾊,设置画布背景的颜⾊为红⾊答案解析:C,turtle.color('red')语句会将画笔和填充颜⾊都设......
  • 使用 Python 实现验证码识别与自动化登录
    安装所需依赖首先,确保你已经安装了Python。然后,可以使用pip安装所需的库:bashpipinstallrequestspillowpytesseract确保你也安装了TesseractOCR。可以从TesseractGitHub获取安装指南。下载验证码图片使用requests库下载验证码图片并保存到本地:pythonimpo......
  • 学习Transformer,应该从词嵌入WordEmbedding开始_trasnformer模型中embedding
    其中的2号位置,就是词嵌入层。Embedding层用于将离散的单词数据,转换为连续且固定长度的向量:这样使模型才能处理和学习这些数据的语义信息。例如,我们希望将“AreyouOK?”这句话,作为神经网络模型的输入。此时神经网络是没办法直接处理这句文本的。我们需要先将“Are......
  • 如何安全运行别人上传的Python代码?
    写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行,在不做任何安全过滤的情况下,就会导致服务器的Home文件夹......
  • 一位60后老程序员从零学习Python的感悟
    AI时代,Python因其语法流畅、上手简单、生态强大,被越来越多的企业和个人所青睐,成为大数据、人工智能的首选编程语言,由于Python的扩展性强大,在其他几乎所有领域,甚至办公、小游戏等,都可以迅速上手。近几年更是在编程语言排行榜中稳居第一,使用人数也持续攀升。在全民学Python的热......
  • python实现rsa加密
    模拟效果:用户注册/登陆成功,返回自己的公钥,注册时候生成的私钥和公钥入库。下次进来的时候,加解密是动态的,也就是每个用户都不一样fromcryptography.hazmat.backendsimportdefault_backendfromcryptography.hazmat.primitives.asymmetricimportrsa,paddingfromcryptograp......
  • python+uniapp微信小程序线上点餐管理信息系统java+nodejs-毕业设计
    前端开发框架:vue.js数据库mysql版本不限后端语言框架支持:1java(SSM/springboot)-idea/eclipse2.Nodejs+Vue.js-vscode3.python(flask/django)--pycharm/vscode4.php(thinkphp/laravel)-hbuilderx数据库工具:Navicat/SQLyog等都可以 随着科技的不断发展,移动互联网......
  • python+vue基于django/flask的在线投票管理系统java+nodejs-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+vue基于django/flask的美食分享推荐系统Java+nodejs-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • Nodejs java python php基于微信平台的二次元手办商场小程序
    目录项目介绍具体实现截图设计方法和思路技术介绍小程序框架以及目录结构介绍java类核心代码部分展示其他小程序项目推荐系统测试详细视频演示源码获取项目介绍小程序选用微信开者与Nodejsjavapythonphp语言,应用uniapp框架,MySQL为后台数据库。系统主要包括用户......