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

执行代码:

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

document=Document(#39;鸿门宴.docx#39;) # 导入模板文件
document.styles[#39;Normal#39;].font.name=u#39;微软雅黑#39; # 设置默认字体,和字号
document.styles[#39;Normal#39;]._element.rPr.rFonts.set(qn(#39;w:eastAsia#39;),u#39;微软雅黑#39;)
document.styles[#39;Normal#39;].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(#39;沛公#39;,#39;刘邦#39;) # 调用函数
change_text(#39;甚急!今者项庄拔剑舞,其意常在刘邦也。#39;,#39;项庄舞剑,意在沛公#39;)
document.save(#39;鸿门宴_替换.docx#39;) # 保存文件
执行程序完成以后的效果图:

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

blender骨骼导入到threejs方法

threejs制作动态旋转银河系

threejs制作鼠标交互的网页banner




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

备案号:皖ICP备19012824号