美文网首页
python编写一个自动替换word文档文字程序

python编写一个自动替换word文档文字程序

作者: SeekLife0 | 来源:发表于2020-12-07 09:04 被阅读0次

    编者的话(可以跳过):

        在政府单位实习了一段时间,发现有很多资料需要制作,而且繁琐重复,第一时间就想到了python,因为在办公自动化这方面我只知道python,本着能偷懒就偷懒的原则,通过查阅资料整出一个小脚本然后用tkinter的ui组件写了一个界面方便除我之外的人使用,此软件涉及内部文件就不发布了。截图如下:

    某城管局行政处罚文件
    1、软件需求

    需求如下:
        当你有一大堆的word文档,然后这些word文档都有其固定格式,也许是一个表格,也许就是只有文字的普通文档,这些固定模式的文档我称之为模板。如果有10份模板,这些模板的填写内容大致相同,比如说文件的编号,年份,一些公司名称等。然后基本上就是机械的找位子复制改改格式循环往复然后时间就过去了,做了一堆无意义的事情。
        所以核心功能:需要把自己想要填写的内容填写到模板的指定位置。

    2、实现方式

    2.1使用python-docx
        有兴趣的可以深入学习一下python-docx,这里仅仅是实现需求。python-docx只能处理docx所以doc需要转为docx具体方法可以自行百度。

    #coding=utf-8
    from docx import Document
    from docx.shared import Pt #磅数
    from docx.oxml.ns import qn #chinese
    
    #路径就是你文档所在的路径,word_name文档文件名称
    document=Document(路径+'/'+word_name)
    
    #old_text原先模板上的文字,new_text是将要替换的文字,document是需要处理的文档对象
    def change_text(old_text, new_text,document):
        #遍历文档内所有段落
        all_paragraphs = document.paragraphs
    
        for paragraph in all_paragraphs:
    
            for run in paragraph.runs:
    
                if old_text in run.text:
    
                    run.text = run.text.replace(old_text, new_text)
        #遍历文档内所有表格
        all_tables = document.tables
    
        for table in all_tables:
    
            for row in table.rows:
    
                for cell in row.cells:
    
                    for paragraph in cell.paragraphs:
    
                        for run in paragraph.runs:
    
                            #print '扫描-->'+run.text
    
                            if old_text in run.text:
    
                                #print run.text+'->'+new_text #+'-->'+chardet.detect(cell.text.encode())
    
                                run.text = run.text.replace(old_text, new_text)
    
    

        这个替换程序是可以替换word文档内表格和非表格的内容且不会修改原模板的任何格式,填写好上面所给函数的参数然后在ide里运行一下,前提是事先在文档中要填写的位置写好要替换的内容,也就是old_text,如下所示:

    文字替换
    \color{red}{小提示:}
        \color{red}{要替换的文字不能包含中文,可以看到图中都是字母和数字}
    \color{red}{的组合,否则python-docx会对其分隔导致替换失败。}
        到此文字替换的内容搞定。这下你可以根据自己的想法做一个软件方便自己和别人使用了。

    注:转载请标明出处。

    相关文章

      网友评论

          本文标题:python编写一个自动替换word文档文字程序

          本文链接:https://www.haomeiwen.com/subject/qkibwktx.html