【Python】自动化办公之路:word自动化实战宝典!


前言

使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装。

一、环境安装

升级pip(便于安装最新库)

python -m pip install -U pip setuptools
在这里插入图片描述
python-docx(我们大部分操作都是使用此库)

安装方法:

pip install python-docx

在这里插入图片描述
使用方法:

from docx import Document
from docx.shared import Inches
官方文档:

https://python-docx.readthedocs.io/en/latest/index.html

win32com(主要用作doc转docx格式转换用)

安装方法:

pip install pypiwin32
在这里插入图片描述
使用方法:

import win32com
from win32com.client import Dispatch, constants
官方文档:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word?view=word-pia

mailmerge(用作按照模板生成大量同类型文档)

安装方法:

pip install docx-mailmerge

使用方法:

from mailmerge import MailMerge
官方文档:

https://pypi.org/project/docx-mailmerge/

matplotlib(Python 的绘图库,本期简单讲解,后期会有专门的课程)

安装方法:

pip install matplotlib

使用方法:

import matplotlib.pyplot as plt
官方文档:

https://matplotlib.org/3.2.2/tutorials/introductory/sample_plots.html
在这里插入图片描述

二、使用步骤

1.引入库

例代码1:

from docx import Document
document = Document()
document.save('new.docx')

效果如下:

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


在这里插入图片描述
示例代码 0.1 Python-docx新建文档.py:

from docx import Document

def 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文档上添加自己的内容,那么我们赶紧看看应该怎样操作吧~

旧文档:
在这里插入图片描述
也许你会说,没有没搞错,就这三句话?是的,就这三句,你就完成了旧文档的复制,如果你想修改,直接添加内容就行了呢!

效果如下:
在这里插入图片描述

win32com 将 doc 转为 docx

在这里插入图片描述
示例代码:

import os
from win32com import client as wc

def 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文档并添加内容

示例代码

import win32com
from win32com.client import Dispatch, constants
import os

# 创建新的word文档
def funOpenNewFile():
    word = Dispatch('Word.Application')
    # 或者使用下面的方法,使用启动独立的进程:
    # word = DispatchEx('Word.Application')

    # 如果不声明以下属性,运行的时候会显示的打开word
    word.Visible = 1  # 0:后台运行 1:前台运行(可见)
    word.DisplayAlerts = 0  # 不显示,不警告

    # 创建新的word文档
    doc = word.Documents.Add()

    # 在文档开头添加内容
    myRange1 = doc.Range(0, 0)
    myRange1.InsertBefore('Hello word\n')

    # 在文档末尾添加内容
    myRange2 = doc.Range()
    myRange2.InsertAfter('Bye word\n')

    # 在文档i指定位置添加内容
    i = 0
    myRange3 = doc.Range(0, i)
    myRange3.InsertAfter("what's up, bro?\n")

    # doc.Save()  # 保存
    doc.SaveAs(os.getcwd() + "\\funOpenNewFile.docx")  # 另存为
    doc.Close()  # 关闭 word 文档
    word.Quit()  # 关闭 office


if __name__ == '__main__':

    print("当前文件路径名:",os.getcwd())

    print("调用funOpenNewFile()")
    funOpenNewFile()

在这里插入图片描述
打开已存在word文档并添加内容

前提条件:
在这里插入图片描述

import win32com
from win32com.client import Dispatch, constants
import os

# 打开已存在的word文件
def funOpenExistFile():
    word = Dispatch('Word.Application')
    # 或者使用下面的方法,使用启动独立的进程:
    # word = DispatchEx('Word.Application')

    # 如果不声明以下属性,运行的时候会显示的打开word
    word.Visible = 1  # 0:后台运行 1:前台运行(可见)
    word.DisplayAlerts = 0  # 不显示,不警告

    doc = word.Documents.Open(os.getcwd() + "\\3.1 win32com测试.docx") # 打开一个已有的word文档

    # 在文档开头添加内容
    myRange1 = doc.Range(0, 0)
    myRange1.InsertBefore('Hello word\n')

    # 在文档末尾添加内容
    myRange2 = doc.Range()
    myRange2.InsertAfter('Bye word\n')

    # 在文档i指定位置添加内容
    i = 0
    myRange3 = doc.Range(0, i)
    myRange3.InsertAfter("what's up, bro?\n")

    # doc.Save()  # 保存
    doc.SaveAs(os.getcwd() + "\\funOpenExistFile.docx")  # 另存为
    doc.Close()  # 关闭 word 文档
    word.Quit()  # 关闭 office

if __name__ == '__main__':
    print("当前文件路径名:",os.getcwd())

    print("调用funOpenExistFile()")
    funOpenExistFile()

效果如下:
在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了办公自动化的使用。

完整清晰版 PDF ,有目录。共 220MB,分为 10 个分卷 Word 2007 宝典 OFFICE2007 OFFICE2010 word2007宝典 原价:88.00元 作者:(美)泰森 著,杜玲 等译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115169945 字数:1159000 页码:649 -------------------------------------------------------------------------------- 内容提要 -------------------------------------------------------------------------------- Word 2007是最普及的办公软件Word的最新版本。该版本不是在以往Word基础上的简单改进,而是进行了彻底的修改,其界面和基本文件格式都是全新的。本书全面介绍了Word 2007,其中不仅包括实现旧功能的新方法,还包括一些新增功能。通过这些内容,可以帮助读者克服最初的障碍,迅速掌握Word 2007,从而学会完成工作的最佳方法。   本书内容丰富,涵盖面广,可供各个级别的Word用户阅读和参考。 目录 -------------------------------------------------------------------------------- 第1部分 欢迎使用Word  第1章 强大的新Word   第2章 快速入门   第3章 在Word中查找以前的命令   第4章 让Word为您工作   第5章 X文件——理解和使用Word的新文件格式   第6章 解决Word中最麻烦的事  第2部分 Word基础  第7章 格式101:字体/字符格式化   第8章 段落格式   第9章 样式   第10章 剪贴板   第11章 查找、替换和定位  第3部分 书写工具  第12章 语言工具   第13章 构建基块和文档部件   第14章 自动更正   第15章 自动套用格式   第16章 智能标记(紫点的含义) 第4部分 不只是单词  第17章 表格   第18章 图片和SmartArt   第19章 页眉和页脚   第20章 符号和公式   第21章 域指南   第22章 艺术字   第23章 图表   第24章 插入对象和文件  第5部分 文档设计  第25章 页面设置和节   第26章 文本框和其他形状   第27章 分栏   第28章 背景   第29章 作为PDF和XPS发布   第30章 作为HTML、XML和博客发布   第31章 模板和主题  第6部分 使用适当的引用  第32章 书签   第33章 目录   第34章 主控文档   第35章 脚注和尾注   第36章 引文和书目   第37章 题注和图表目录   第38章 索引   第39章 引文目录   第40章 超链接和交叉引用  第7部分 Word拓展  第41章 数据源   第42章 信封和标签   第43章 数据文档和邮件合并   第44章 窗体  第8部分 功能和自定义  第45章 键盘自定义   第46章 快速访问工具栏   第47章 选项和设置   第48章 录制、编辑和使用宏  第9部分 将Word与其他内容结合使用  第49章 安全性、修订和批注   第50章 比较和合并协作文档   第51章 SharePoint   第52章 Groove   第53章 与其他Office应用程序集成  附录A Word 2007中的Word 2003菜单命令指南  附录B Word 2007默认键分配方案
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐浪老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值