使用场景:适合比较长的文档,不需要我们一个一个的去输入文字,而且可以在word中提前做好排版,会比较方便一点,而且不需要通过Python去手工设定字体、字号等排版。
案例:将文章《鸿门宴》中的所有“沛公”替换为“刘邦”。将名句“甚急!今者项庄拔剑舞,其意常在刘邦也。”替换为“项庄舞剑,意在沛公。”
鸿门宴模板文件大致如下:

执行代码:

'''Word格式套用之套用模板'''
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn

document=Document('鸿门宴.docx') # 导入模板文件
document.styles['Normal'].font.name=u'微软雅黑' # 设置默认字体,和字号
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'微软雅黑')
document.styles['Normal'].font.size=Pt(12)

def change_text(old_text,new_text): # 定义一个函数,将久闻字换成新文字
    all_paragraphs=document.paragraphs # 获取所有的段落
    for paragraph in all_paragraphs:
        for run in paragraph.runs: # 获取段落中不同格式的句子
            run_text=run.text.replace(old_text,new_text) # 将文字进行替换
            run.text=run_text
    all_tables=document.tables # 获取所有表格,这里没有表格,暂时用不到
    for table in all_tables: # 依次获取表格的内容
        for rows in table.rows:
            for cell in rows.cells:
                cell_text=cell.text.replace(old_text,new_text) # 替换表格里的新旧内容
                cell.text=cell_text
change_text('沛公','刘邦') # 调用函数
change_text('甚急!今者项庄拔剑舞,其意常在刘邦也。','项庄舞剑,意在沛公')
document.save('鸿门宴_替换.docx') # 保存文件
执行程序完成以后的效果图:

评论
头像
验证码:
相关推荐

七年之痒是什么意思

520送什么给女友

第一次见女方父母送什么好




如果未经特殊说明,本站内容皆为原创,转载内容如果侵犯了您的权益,如有侵权请联系管理员删除
联系QQ:2380712278

备案号:皖ICP备19012824号