【Python】34 个 Python 办公自动化工具库(附简易demo)

【Python】34 个 Python 办公自动化工具库(附简易demo)

目录

专栏导读

❤️ 欢迎各位佬关注! ❤️
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
📕 此外还有python基础专栏:请点击——>Python基础学习专栏 求订阅
🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏 求订阅
👍 该系列文章专栏:请点击——>Python办公自动化专栏 求订阅
🏳️‍🌈 ZEEKLOG博客主页:请点击——> ZEEKLOG的博客主页 求关注
🏳️‍🌈 知乎主页:请点击——> 知乎主页 求关注
🏳️‍🌈 Github主页:请点击——> Github主页 求Star⭐
🏳️‍🌈 个人博客主页:请点击——> 个人的博客主页 求收藏
🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

34 个 Python 办公自动化工具库

在日常办公中,我们经常需要处理各种各样的文件和任务,如 Excel 表格、Word 文档、PPT 演示文稿、PDF 文件、邮件发送等。Python 作为一门功能强大的编程语言,拥有丰富的第三方库,可以帮助我们高效地完成这些办公自动化任务。

本文整理了 34 个常用的 Python 办公自动化工具库,并为每个库附上了简单的 Demo 代码,涵盖了 Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理以及综合功能等多个方面。

一、Python Excel 自动化库

Excel 是最常用的办公软件之一,Python 提供了多种库来处理 Excel 文件。

1. xlwings

简介:xlwings 是一个开源库,它可以让 Python 和 Excel 互相调用。它的主要特点是功能强大且使用方便,能够轻松地读写 Excel 文件,甚至可以用 Python 替代 VBA 来编写宏。
应用场景:需要与 Excel 进行交互操作,或者替代 VBA 开发复杂的 Excel 应用。
Demo 代码

import xlwings as xw # 打开一个新的 Excel 工作簿 wb = xw.Book() sheet = wb.sheets[0]# 写入数据 sheet.range('A1').value ='Hello xlwings!' sheet.range('A2').value =[1,2,3,4,5]# 读取数据print(sheet.range('A1').value)# 保存并关闭 wb.save('example_xlwings.xlsx') wb.close()

2. openpyxl

简介:openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它不支持旧版的 xls 格式,但对新版格式支持非常好。
应用场景:处理 .xlsx 格式的 Excel 文件,进行数据的读取、写入和样式修改。
Demo 代码

from openpyxl import Workbook # 创建工作簿 wb = Workbook() ws = wb.active # 写入数据 ws['A1']="Hello" ws.append([1,2,3])# 保存文件 wb.save("example_openpyxl.xlsx")

3. xlrd

简介:xlrd 主要用于读取 Excel 文件,支持 .xls 和 .xlsx 格式(但在新版本中对 .xlsx 的支持已被移除,建议配合 openpyxl 使用)。
应用场景:读取旧版 .xls 格式的 Excel 文件数据。
Demo 代码

import xlrd # 打开 Excel 文件 (仅示例,需存在文件)# book = xlrd.open_workbook("old_format.xls")# sheet = book.sheet_by_index(0)# 读取数据# print(sheet.cell_value(0, 0))

4. xlwt

简介:xlwt 主要用于将数据写入旧版 Excel 文件(.xls 格式)。它不支持 .xlsx 格式。
应用场景:生成旧版 .xls 格式的报表。
Demo 代码

import xlwt wb = xlwt.Workbook() ws = wb.add_sheet('A Test Sheet')# 写入数据 ws.write(0,0,'Hello xlwt')# 保存为 .xls 格式 wb.save('example_xlwt.xls')

5. xlutils

简介:xlutils 是一个工具库,通常与 xlrd 和 xlwt 配合使用。它提供了复制和修改 Excel 文件的功能。
应用场景:在不破坏原有格式的情况下,修改旧版 .xls 文件。
Demo 代码

import xlrd from xlutils.copy import copy # 配合 xlrd 读取,然后用 copy 转换为可写对象# rb = xlrd.open_workbook('example_xlwt.xls')# wb = copy(rb)# ws = wb.get_sheet(0)# ws.write(0, 1, 'Modified!')# wb.save('example_xlutils.xls')

6. xlsxwriter

简介:xlsxwriter 是一个用于创建 Excel .xlsx 文件的 Python 模块。它支持多种 Excel 功能,如格式化、图表、公式等,但它只能写不能读。
应用场景:需要生成包含丰富图表和格式的 .xlsx 报表,且不需要读取现有文件。
Demo 代码

import xlsxwriter workbook = xlsxwriter.Workbook('example_xlsxwriter.xlsx') worksheet = workbook.add_worksheet()# 写入数据 worksheet.write('A1','Hello') worksheet.write('A2','World')# 关闭文件 workbook.close()

7. pandas

简介:虽然 pandas 是一个数据分析库,但它提供了强大的 Excel 读写功能(read_excelto_excel)。它通常依赖于 xlrd、openpyxl 或 xlsxwriter 等库作为引擎。
应用场景:进行数据分析时的数据导入导出,处理大量表格数据。
Demo 代码

import pandas as pd # 创建 DataFrame df = pd.DataFrame({'Data':[10,20,30,40]})# 写入 Excel df.to_excel('example_pandas.xlsx', index=False)# 读取 Excel df_read = pd.read_excel('example_pandas.xlsx')print(df_read)

8. Marmir

简介:Marmir 能够将 Python 数据结构转换为电子表格。
应用场景:简单的将 Python 数据导出为表格。
Demo 代码

# 注:Marmir 是一个较老的库,通常用于特定框架集成# 伪代码示例# import marmir# data = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]# spreadsheet = marmir.generate_spreadsheet(data)

二、Python Word 自动化库

处理 Word 文档也是办公自动化的重要需求。

9. python-docx

简介:python-docx 是用于创建和更新 Microsoft Word (.docx) 文件的 Python 库。它可以添加段落、表格、图片等。
应用场景:批量生成合同、报告等 Word 文档。
Demo 代码

from docx import Document doc = Document() doc.add_heading('Document Title',0) doc.add_paragraph('A plain paragraph having some bold text.') doc.save('example_docx.docx')

10. textract

简介:textract 旨在从任何文档中提取文本,支持 Word、PowerPoint、PDF 等多种格式。
应用场景:需要从 Word 文档或其他格式文档中提取纯文本内容进行分析。
Demo 代码

import textract # text = textract.process("path/to/file.docx")# print(text.decode("utf-8"))

三、Python PPT 自动化库

11. python-pptx

简介:python-pptx 是用于创建和更新 PowerPoint (.pptx) 文件的 Python 库。它可以自动生成幻灯片,插入文本、图像、图表等。
应用场景:自动化生成月度汇报、数据分析报告 PPT。
Demo 代码

from pptx import Presentation prs = Presentation() slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(slide_layout) title = slide.shapes.title subtitle = slide.placeholders[1] title.text ="Hello, World!" subtitle.text ="python-pptx is here!" prs.save('example_pptx.pptx')

四、Python ODF 自动化库

ODF (Open Document Format) 是一种开放文档格式。

12. Relatorio

简介:Relatorio 是一个模板库,可以使用 OpenDocument 格式(如 .odt)作为模板来输出文件。
应用场景:使用 ODF 格式作为模板生成报表。
Demo 代码

# 伪代码:Relatorio 通常结合 Genshi 使用# from relatorio.templates.opendocument import Template# basic = Template(source=None, filepath='template.odt')# basic_generated = basic.generate(data={'name': 'World'})# file('output.odt', 'wb').write(basic_generated.render().getvalue())

五、Python PDF 自动化库

PDF 是文件分发和交换的标准格式。

13. PyPDF2

简介:PyPDF2 是一个纯 Python 库,用于分割、合并、裁剪和转换 PDF 文件的页面。它也可以提取 PDF 中的文本和元数据。
应用场景:PDF 文件的合并、拆分、页面旋转等操作。
Demo 代码

from PyPDF2 import PdfReader # reader = PdfReader("example.pdf")# number_of_pages = len(reader.pages)# page = reader.pages[0]# text = page.extract_text()# print(text)

14. ReportLab

简介:ReportLab 是一个强大的库,用于直接创建 PDF 文档。它支持绘制图形、表格、图表等复杂的布局。
应用场景:从头开始生成复杂的 PDF 报表或发票。
Demo 代码

from reportlab.pdfgen import canvas c = canvas.Canvas("example_reportlab.pdf") c.drawString(100,750,"Welcome to Reportlab!") c.save()

15. PDFminer

简介:PDFminer 专注于从 PDF 文档中提取文本信息。它比其他库更关注文本的结构和位置。
应用场景:从 PDF 中精确提取文本内容进行分析。
Demo 代码

from pdfminer.high_level import extract_text # text = extract_text('example.pdf')# print(text)

六、Python 邮件自动化库

邮件自动化可以极大地提高沟通效率。

16. Django Celery SES

简介:用于 Django 框架,结合 Celery 和 Amazon SES 发送邮件。
应用场景:Django 项目中的异步邮件发送。
Demo 代码

# 这是一个 Django 插件,配置在 settings.py 中# EMAIL_BACKEND = 'django_celery_ses.EmailBackend'# from django.core.mail import send_mail# send_mail('Subject', 'Body', '[email protected]', ['[email protected]'])

17. Envelopes

简介:Envelopes 是一个简单的库,旨在使 Python 中的电子邮件处理变得简单。
应用场景:简化邮件发送代码。
Demo 代码

from envelopes import Envelope # envelope = Envelope(# from_addr=(u'[email protected]', u'From Example'),# to_addr=(u'[email protected]', u'To Example'),# subject=u'Envelopes demo',# text_body=u"I'm a helicopter!"# )# envelope.send('smtp.googlemail.com', login='user', password='password', tls=True)

18. Flanker

简介:Flanker 是由 Mailgun 开源的库,用于解析电子邮件地址和 MIME 消息。
应用场景:邮件地址验证和复杂的邮件解析。
Demo 代码

from flanker.addresslib import address addr = address.parse('Foo <[email protected]>')print(addr.address)# [email protected](addr.display_name)# Foo

19. imbox

简介:imbox 是一个用于读取 IMAP 邮箱的 Python 库,旨在让读取邮件变得简单。
应用场景:自动化读取和处理收件箱邮件。
Demo 代码

from imbox import Imbox # with Imbox('imap.gmail.com',# username='username',# password='password',# ssl=True,# ssl_context=None,# starttls=False) as imbox:# all_inbox_messages = imbox.messages()# for uid, message in all_inbox_messages:# print(message.subject)

20. inbox.py

简介:inbox.py 宣称是“最简单的 SMTP 服务器”。
应用场景:搭建简单的 SMTP 服务进行测试或轻量级应用。
Demo 代码

from inbox import Inbox # inbox = Inbox()# @inbox.collate# def handle(to, sender, subject, body):# print(to, sender, subject, body)# inbox.serve(address='0.0.0.0', port=4467)

21. sync-engine

简介:Nylas Mail 的同步引擎,提供 RESTful API 来访问邮件、日历和联系人。
应用场景:构建基于邮件的复杂应用。
Demo 代码

# sync-engine 主要是作为服务运行,客户端通过 HTTP API 调用# requests.get('http://localhost:5555/messages')

22. Lamson

简介:Lamson 是一个纯 Python 的 SMTP 服务器,旨在以类似 Web 框架的方式构建邮件应用。
应用场景:构建复杂的邮件处理服务器。
Demo 代码

# Lamson 需要生成项目结构# lamson gen -project mymail# 类似于 Django 的 runserver

23. Marrow Mailer

简介:Marrow Mailer 是一个高性能、可扩展的邮件发送框架。
应用场景:需要高效发送大量邮件。
Demo 代码

from marrow.mailer import Mailer, Message # mailer = Mailer(dict(transport=dict(use='smtp', host='localhost')))# mailer.start()# message = Message([('Alice', '[email protected]')], [('Bob', '[email protected]')], "Subject", plain="Body")# mailer.send(message)# mailer.stop()

24. Modoboa

简介:Modoboa 是一个邮件托管和管理平台,包含 Web UI。
应用场景:搭建和管理自己的邮件服务器。
Demo 代码

# Modoboa 是一个完整的平台,通常通过安装程序部署# pip install modoboa# modoboa-admin.py deploy instance

25. smtplib

简介:Python 标准库自带的模块,用于发送邮件。
应用场景:基础的邮件发送功能,无需安装第三方库。
Demo 代码

import smtplib from email.mime.text import MIMEText # msg = MIMEText('This is the body of the email')# msg['Subject'] = 'Hello'# msg['From'] = '[email protected]'# msg['To'] = '[email protected]'# s = smtplib.SMTP('localhost')# s.send_message(msg)# s.quit()

七、Python 微信自动化库

26. Python wxpy

简介:wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。
应用场景:微信个人号的自动化操作,如自动回复、消息处理等(注:受微信安全策略影响,部分账号可能无法使用)。
Demo 代码

# from wxpy import Bot# bot = Bot()# my_friend = bot.friends().search('Friend Name')[0]# my_friend.send('Hello WeChat!')

八、Python 文件处理自动化库

27. os

简介:Python 标准库,提供了丰富的方法来处理操作系统相关的功能,特别是文件和目录的操作。
应用场景:文件的遍历、重命名、删除、路径处理等。
Demo 代码

import os # 获取当前工作目录print(os.getcwd())# 列出当前目录下的文件print(os.listdir('.'))# 路径拼接 path = os.path.join('folder','file.txt')print(path)

九、Python 综合功能自动化库

28. win32com

简介:win32com 是 pywin32 的一部分,允许 Python 调用 Windows 的 COM 组件,从而控制 Office 软件(Word, Excel, PPT 等)。
应用场景:在 Windows 平台上深度控制 Office 软件,实现 VBA 能做到的几乎所有功能。
Demo 代码

import win32com.client # excel = win32com.client.Dispatch("Excel.Application")# excel.Visible = True# wb = excel.Workbooks.Add()# ws = wb.Worksheets(1)# ws.Cells(1, 1).Value = "Hello via COM"

29. unoconv

简介:unoconv 可以利用 LibreOffice/OpenOffice 的 UNO 接口,在不同文档格式之间进行转换。
应用场景:在命令行下批量转换文档格式,如将 Word 转为 PDF。
Demo 代码

# 命令行工具使用示例# unoconv -f pdf example.docx

30. Tablib

简介:Tablib 是一个格式无关的表格数据集库,支持导出为 XLS, CSV, JSON, YAML 等多种格式。
应用场景:数据的多种格式导出。
Demo 代码

import tablib data = tablib.Dataset() data.headers =['First Name','Last Name'] data.append(['Kenneth','Reitz']) data.append(['Bessie','Monke'])# 导出为 JSONprint(data.export('json'))

31. SnowNLP

简介:SnowNLP 是一个能够处理中文文本内容的库,受到了 TextBlob 的启发。
应用场景:中文文本的情感分析、关键词提取等。
Demo 代码

from snownlp import SnowNLP s = SnowNLP(u'这个东西真的很赞')print(s.sentiments)# 输出情感分数

32. TextBlob

简介:TextBlob 是一个用于处理文本数据的 Python 库,提供简单的 API 用于常见的自然语言处理(NLP)任务。
应用场景:英文文本的情感分析、词性标注、翻译等。
Demo 代码

from textblob import TextBlob text = TextBlob("TextBlob is amazingly simple to use. What great fun!")print(text.sentiment)

33. TextGrocery

简介:TextGrocery 是一个基于 LibLinear 的简单高效的短文本分类工具。
应用场景:短文本分类任务。
Demo 代码

# from tgrocery import Grocery# grocery = Grocery('sample')# grocery.train('train_file.txt')# print(grocery.predict('test text'))

34. NumPy

简介:NumPy 是 Python 科学计算的基础库,提供高性能的多维数组对象和工具。
应用场景:虽然主要用于科学计算,但在处理包含大量数值数据的办公自动化任务中也非常有用。
Demo 代码

import numpy as np # 创建数组 a = np.array([1,2,3])print(a)# 计算均值print(np.mean(a))

以上就是 34 个常用的 Python 办公自动化工具库。根据具体的需求选择合适的库,可以大大提升工作效率。希望这份清单对你有所帮助!

结尾

此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏
此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏
此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏
求个 🤞 关注 🤞 +❤️ 喜欢 ❤️ +👍 收藏 👍
希望能得到大家的【❤️一个免费关注❤️】感谢!
希望对初学者有帮助;致力于办公自动化的小小程序员一枚

Read more

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

本系列主要通过调用天气的mcp server查询天气这个例子来学习什么是mcp,以及怎么设计mcp。话不多说,我们开始吧。主要参考的是B站的老哥做的一个教程,我把链接放到这里,大家如果有什么不懂的也可以去看一下。 https://www.bilibili.com/video/BV1NLXCYTEbj?spm_id_from=333.788.videopod.episodes&vd_source=32148098d54c83926572ec0bab6a3b1d https://blog.ZEEKLOG.net/fufan_LLM/article/details/146377471 最终的效果:让deepseek-v3使用天气查询的工具来查询指定地方的天气情况 技术介绍 MCP,即Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年底推出的一项创新技术协议。在它刚问世时,并未引起太多关注,反响较为平淡。然而,随着今年智能体Agent领域的迅猛发展,MCP逐渐进入大众视野并受到广泛关注。今年2月,

By Ne0inhk
可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

小巧的MCPHost MCPHost 可以在命令行下使用,使大型语言模型(LLM)能够通过模型上下文协议(MCP)与外部工具进行交互。目前支持Claude 3.5 Sonnet和Ollama等。本次实践使用自己架设的Deepseek v3模型,跑通了Time MCP服务。  官网:GitHub - mark3labs/mcphost: A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP). 下载安装 使用非常方便,直接下载解压即可使用。官网提供Windows、Linux和MacOS三个系统的压缩包: https://github.com/

By Ne0inhk
实战篇:Python开发monogod数据库mcp server看完你就会了

实战篇:Python开发monogod数据库mcp server看完你就会了

原创不易,请关注公众号:【爬虫与大模型开发】,大模型的应用开发之路,整理了大模型在现在的企业级应用的实操及大家需要注意的一些AI开发的知识点!持续输出爬虫与大模型的相关文章。 前言 目前mcp协议是给deepseek大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力! 如何开发一个mcp? mcp是一种协议,指的是模型上下文协议 (Model Context Protocol)。 官方结成的mcp https://github.com/modelcontextprotocol/python-sdk mcp库 pip install mcp from mcp.server.fastmcp import FastMCP 我们先来做一个简单的案例 from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("spider") @mcp.tool() def crawl(

By Ne0inhk
AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 作者:高瑞冬 本文目录 * AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 * 一、MCP协议简介 * 二、创建MCP工具集 * 1. 获取MCP服务地址 * 2. 在FastGPT中创建MCP工具集 * 三、测试MCP工具 * 四、AI模型调用MCP工具 * 1. 调用单个工具 * 2. 调用整个工具集 * 五、私有化部署支持 * 1. 环境准备 * 2. 修改docker-compose.yml文件 * 3. 修改FastGPT配置 * 4. 重启服务 * 六、使用MCP-Proxy集成多个MCP服务 * 1. MCP-Proxy简介 * 2. 安装MCP-Proxy * 3. 配置MCP-Proxy * 4. 将MCP-Proxy与FastGPT集成 * 5. 高级配置

By Ne0inhk