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

发布时间 2023-04-27 15:25:06作者: 捷后愚生

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来设置替换后的文本的格式,从而达到修改文本格式的目的。