首页 > 编程语言 >python-doc替换docx表格字段后,设置替换后字段的字体、字号、对齐方式

python-doc替换docx表格字段后,设置替换后字段的字体、字号、对齐方式

时间:2023-04-27 15:37:31浏览次数:40  
标签:docx run python text cell 文本 替换

python-doc替换docx表格字段后,设置替换后字段的字体、字号、对齐方式

from docx import Document
 # 打开docx文档
doc = Document(r'E:\hhj\202304\图片excel\example.docx')
 # 遍历文档中的所有表格
for table in doc.tables:
    # 遍历表格中的每个单元格
    for cell in table._element.xpath('.//w:t'):
        # 获取单元格中的文本
        text = cell.text
        # 判断文本是否是需要替换的字段
        if '需要替换的字段' in text:
            # 将字段替换为指定文本
            text = text.replace('需要替换的字段', '替换后的文本')
            # 设置替换后的文本格式
            run = cell.getparent().add_r()
            # 设置字体
            font = run.font
            font.name = '微软雅黑'
            # 设置字号
            font.size = Pt(12)
            # 设置对齐方式
            para = cell.getparent()
            para.alignment = WD_ALIGN_PARAGRAPH.CENTER
            cell.text = text
 # 保存文档        
doc.save(r'E:\hhj\202304\图片excel\example.docx')

上述代码会遍历文档中的所有表格,检查每个单元格中是否包含需要替换的字段,如果包含则将其替换为指定文本,并设置替换后的文本的字体、字号、对齐方式。最后将修改后的文档保存到指定路径下。

run = cell.getparent().add_r()是什么意思

run = cell.getparent().add_r() 的作用是获取当前单元格所在的段落(paragraph),并在此段落中添加一个新的run,run 表示文本段落中的一个区域,可以包含相同的格式(如字体、字号、颜色等)。在这个新的run中,我们可以设置替换后的文本的格式,从而达到修改文本格式的目的。

具体来说, cell.getparent() 会获取当前单元格所在的段落, add_r() 会在此段落中添加一个新的run,并且返回这个新的run。这样一来,我们就可以通过这个新的run来设置替换后的文本的格式,从而达到修改文本格式的目的。

--上面代码有问题

标签:docx,run,python,text,cell,文本,替换
From: https://www.cnblogs.com/Uni-Hoang/p/17359019.html

相关文章

  • Python12类内置函数大汇总
    内置函数就是python给你提供的,拿来直接用的函数,比如print.,input等。截止到python版本3.6.2python一共提供了68个内置函数,我将它们分成12类,方便你学习。#68个内置函数abs()dict()help()min()setattr()all()dir()hex()next()slice()any()......
  • Python之操作redis数据库
    Python操作redis数据库步骤1、导入redis模块2、建立连接3、写入命令importredisip='xxx.xx.xx.xx'password='123456'r=redis.Redis(host=ip,password=password,port=6379,db=1)res=r.get('lrx2')print(res)#结果为:b'\xe5\x97\xafohyeah234324'#结果是......
  • vim 替换操作和特定行删除
    字符串替换1.先按Esc进入命令模式,然后再打出‘:’(英文输入模式下)2.输入格式: 首行数,末行数s/要替换的字符串/替换的字符串/g  ;    常用操作为     :start_line,end_line s/xxx/xxx/(不加g只替换每行的第一个要替换的字符串,后面的不会替换, s代表字符串的意思......
  • Python布尔值属于数字类型吗?
    今日鸡汤列郡讴歌惜,三朝出入荣。大家好,我是皮皮。一、前言前几天在Python黄金交流群【dcpeng】问了一道Python类型的基础问题,如下图所示。二、实现过程针对这个问题,大佬们一起讨论,给出了具体的结论,Python里的布尔值是数字类型。这里【崔峰】给了一个代码,如下所示:可以看到,布尔类型......
  • 不使用内置函数的情况下,如何使用Python实现求平均值、最大值和最小值?
    今日鸡汤寂寂竟何待,朝朝空自归。大家好,我是Python进阶者。一、前言昨天在Python最强王者交流群【鱼鱼鱼也不】问了一个Pandas处理的问题,下图是讨论截图:下图是他的原始数据:其实一开始是有点难以理解的。其实这个就是想判断两列的情况,用一列值填充另一列值。二、实现过程这里【猫药......
  • 软件测试选择学习java还是python?
     你好,我是小牛。当你学完软件测试基本理论,掌握业务测试流程,功能测试可以搞定,数据库和linux玩的也很溜时,接下来想进一步进阶,那么学习一门编程语言必不可少。同时,学习一门编程语言也是你成为自动化测试工程师乃至测试开发工程师的基本准入门槛。目前,编程语言五花八门,比如很多人大学......
  • python-docx对已存在的段落p1设置英文字体、中文字体、字号大小、居中对齐
    可以使用python-docx库中的样式Styles和元素Paragraph对已存在的段落进行设置。示例代码如下,可以将已存在的段落p1设置为英文字体Calibri,中文字体宋体,字号14,居中对齐:fromdocximportDocumentfromdocx.enum.textimportWD_PARAGRAPH_ALIGNMENTfro......
  • python-doc添加段落后设置字体、字号、加粗、对齐
    python-doc添加段落后设置字体、字号、加粗、对齐fromdocximportDocument#导入Document类,用于创建文档fromdocx.sharedimportPt,RGBColor#导入Pt类和RGBColor类,用于设置字体大小和颜色fromdocx.enum.textimportWD_PARAGRAPH_ALIGNMENT#导入WD_PARAGRAPH_ALI......
  • 使用arcpy替换工程文件中的栅格图层数据源异常
    参考:https://www.cnblogs.com/Leechg/p/10668992.html前面的1月1日到1月31日输出正常但是从2月1日开始就开始重复输出1月1日的图片到3月1日开始也是输出1月1日的图片。。难道每个月的必须分开存放?原因是???......
  • Python relative import local package module file All In One
    PythonrelativeimportlocalpackagemodulefileAllInOne$tree└──project├──package1│├──module1.py│└──module2.py└──package2├──__init__.py├──module3.py├──module4.py......