https://blog.csdn.net/u014779536/article/details/108418066
环境安装使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装。
升级pip(便于安装最新库)
代码语言:javascript复制python -m pip install -U pip setuptoolspython-docx(我们大部分操作都是使用此库)
安装方法:
代码语言:javascript复制pip install python-docx使用方法:
代码语言:javascript复制from docx import Documentfrom docx.shared import Inches官方文档:
https://python-docx.readthedocs.io/en/latest/index.html
win32com(主要用作doc转docx格式转换用)
安装方法:
代码语言:javascript复制pip install pypiwin32使用方法:
代码语言:javascript复制import win32comfrom win32com.client import Dispatch, constants官方文档:
https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word?view=word-pia
mailmerge(用作按照模板生成大量同类型文档)
安装方法:
代码语言:javascript复制pip install docx-mailmerge使用方法:
代码语言:javascript复制from mailmerge import MailMerge官方文档:
https://pypi.org/project/docx-mailmerge/
matplotlib(Python 的绘图库,本期简单讲解,后期会有专门的课程)
安装方法:
代码语言:javascript复制pip install matplotlib使用方法:
代码语言:javascript复制import matplotlib.pyplot as plt官方文档:
https://matplotlib.org/3.2.2/tutorials/introductory/sample_plots.html
Python-docx 新建文档示例代码1:
代码语言:javascript复制from docx import Documentdocument = Document()document.save('new.docx')效果如下:
示例代码 0.1 Python-docx新建文档.py:
代码语言:javascript复制from docx import Documentdef GenerateNewWord(filename):document = Document()document.save(filename)if __name__ == "__main__":print("大家好!我们今天开始学习word文档自动化")print("我们先来直接生成一个名为‘new.docx’的文档")document = Document()document.save('new.docx')print("没错,里面什么都没有")# 我是华丽的分隔符print("我们使用函数生成一个word文档试试")newname = '使用函数生成的文档.docx'GenerateNewWord(newname)效果如下:
Python-docx 编辑已存在文档我们很多时候需要在已存在的word文档上添加自己的内容,那么我们赶紧看看应该怎样操作吧~
旧文档:
代码语言:javascript复制from docx import Documentdocument = Document('exist.docx')document.save('new.docx')也许你会说,没有没搞错,就这三句话?是的,就这三句,你就完成了旧文档的复制,如果你想修改,直接添加内容就行了呢!
效果如下:
win32com 将 doc 转为 docx旧文档:
示例代码:
代码语言:javascript复制import osfrom win32com import client as wcdef TransDocToDocx(oldDocName,newDocxName):print("我是 TransDocToDocx 函数")# 打开word应用程序word = wc.Dispatch('Word.Application')# 打开 旧word 文件doc = word.Documents.Open(oldDocName)# 保存为 新word 文件,其中参数 12 表示的是docx文件doc.SaveAs(newDocxName, 12)# 关闭word文档doc.Close()word.Quit()print("生成完毕!")if __name__ == "__main__":# 获取当前目录完整路径currentPath = os.getcwd()print("当前路径为:",currentPath)# 获取 旧doc格式word文件绝对路径名docName = os.path.join(currentPath,'旧doc格式文档.doc')print("docFilePath = ", docName)# 设置新docx格式文档文件名docxName = os.path.join(currentPath,'新生成docx格式文档.docx')TransDocToDocx(docName,docxName)效果如下:
win32com 操作 word打开新的word文档并添加内容
示例代码:
代码语言:javascript复制import win32comfrom win32com.client import Dispatch, constantsimport os# 创建新的word文档def funOpenNewFile():word = Dispatch('Word.Application')# 或者使用下面的方法,使用启动独立的进程:# word = DispatchEx('Word.Application')# 如果不