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

Python012

python编写一个自动替换word文档文字程序,第1张

编者的话(可以跳过):

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

需求如下:

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

    所以核心功能:需要把自己想要填写的内容填写到模板的指定位置。

2、实现方式

2.1使用python-docx

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

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

再MacOs运行的PyCharm中,执行python文件,如果不指定python文件字符编码会报错:

SyntaxError: Non-ASCII character '\xe6' in file /Users/yuchao/PycharmProjects/oldboy_python/python_lesson/模块与包/spam.py on line 6,

but no encoding declaredsee http://python.org/dev/peps/pep-0263/ for details

所以

找到FIle >Default settings >Editor >File and Code Templates >Python Script

如此创建python文件后就有头部信息了

PyCharm中的文件模版变量:

下载安装一下运行Excel和Word的第三方库

我用的分别是openpyxl,python-docx

具体位置的话你需要告诉我要在哪里

比方说第几行