victory的博客

长安一片月,万户捣衣声

0%

python-docx | python替换word文档中的文字

python替换word文档中的文字

实现代码:

# -*- coding:utf-8 -*-
import docx


# # 定义函数替换文字块中的字符
# def info_update(doc, old_info, new_info):
#     for para in doc.paragraphs:  # 遍历段落
#         for run in para.runs:  # 遍历文字块
#             # run.text = run.text.replace(old_info, new_info)  # 替换
#             print(run.text)
#
#
# doc = docx.Document('替换前.docx')
# info_update(doc, '第四次', '第五次')
# info_update(doc, '2019', '2020')
# info_update(doc, '18', '10')
# doc.save('替换后.docx')

# doc = docx.Document('替换前.docx')
# for para in doc.paragraphs:  # 遍历段落
#     for run in para.runs:  # 遍历文字块
#         # run.text = run.text.replace(old_info, new_info)  # 替换
#         print(run.text)

# # 按段落查看文字
# doc = docx.Document('替换前.docx')
# for para in doc.paragraphs:
#     print(para.text)

import docx
from docx.shared import Pt  # 用于设定字体大小(磅值)
from docx.oxml.ns import qn  # 用于应用中文字体


def info_update(doc, old_info, new_info):
    for para in doc.paragraphs:
        para.text = para.text.replace(old_info, new_info)

    # 设置第一段(标题)的文字格式
    for run in doc.paragraphs[0].runs:
        run.font.size = Pt(14)  # 文字大小磅值
        run.bold = True  # 加粗
        run.font.name = "微软雅黑"  # 字体选择
        # 中文字体应用,固定写法
        r = run._element.rPr.rFonts  # 字体,固定写法
        r.set(qn("w:eastAsia"), "微软雅黑")  # 字体

    # 设置第二及后续段落的文字格式
    for para in doc.paragraphs[1:]:
        for run in para.runs:
            run.font.size = Pt(12)  # 文字大小
            run.bold = False  # 不加粗
            run.font.name = "微软雅黑"  # 字体选择
            # 中文字体应用,固定写法
            r = run._element.rPr.rFonts
            r.set(qn("w:eastAsia"), "微软雅黑")


doc = docx.Document('替换前.docx')
info_update(doc, "第四次", "第五次")
info_update(doc, "2019", "2020")
info_update(doc, "18", "10")
doc.save('替换后_设置格式.docx')

替换前.docx