docx文档api python_基于python的Word办公自动化

本教程介绍了如何使用Python的docx, win32com和mailmerge库来实现Word文档的自动化操作,包括新建、编辑、转换格式、批量生成文档和绘制图表。详细讲解了各个库的安装、使用方法和具体示例,适用于数据分析报告和合同生成等场景。" 7326065,710636,Ubuntu环境下C语言使用libxls库读取Excel,"['Ubuntu', 'C编程', 'Excel处理', 'libxls库']
摘要由CSDN通过智能技术生成

4405eff605bce5fe36a7d9d42d5a05d5.png

环境安装

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

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

python -m pip install -U pip setuptools
304954979ced9048be244fad88a7eb35.png

python-docx(我们大部分操作都是使用此库)

安装方法:

pip install python-docx
eb2a5626f8046e4b274b0a764edc7540.png

使用方法:

from docx import Document
from docx.shared import Inches

官方文档:

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

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

安装方法:

pip install pypiwin32
0dccc2525b81354a873af543318d0f03.png

使用方法:

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
60e3bab468b227b3a1537519f1207576.png

使用方法:

from mailmerge import MailMerge

官方文档:

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

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

安装方法:

pip install matplotlib
ff0cf5d9170e94f67d28880321331059.png

使用方法:

import matplotlib.pyplot as plt

官方文档:

https://matplotlib.org/3.2.2/tutorials/introductory/sample_plots.html

1e818b3553fc797145614f53002285d6.png

Python-docx 新建文档

示例代码1:

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

效果如下:

8be68d3c2fceeaa2eab39a38b2693ea6.png

示例代码 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)

效果如下:

2a990fee5164ce1d9e89913d652a5803.png

Python-docx 编辑已存在文档

我们很多时候需要在已存在的word文档上添加自己的内容,那么我们赶紧看看应该怎样操作吧~

旧文档:

e4cc08822274aa1efaabbe47533a4393.png示例代码:
from docx import Document
document = Document('exist.docx')
document.save('new.docx')

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

效果如下:

9198371780743410113f8bd6cfd32aa3.png

win32com 将 doc 转为 docx

旧文档:530eaba5096d6a2476a689509551cde3.png

示例代码:

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)

效果如下:

f16e389d950d94d3130f08fa0640ad5d.png
fa7906e8d80ec6a5d972a183bd2e51a7.png

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)
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值