python-office 是一个专注于办公自动化的 Python 第三方库。 每个功能只需 一行代码 即可完成,让你不学 Python 也能自动化办公。
✨ 功能持续更新中,欢迎提交你的功能需求 → 开发者微信
| 特点 | 说明 |
|---|---|
| 🚀 一行代码 | 90% 的功能只需要一行代码,零基础也能用 |
| 🎯 场景驱动 | 覆盖 PDF、Word、Excel、PPT、邮件、微信、图片、视频等真实办公场景 |
| 🧩 Skills 体系 | 内置 73 个开箱即用的 Skill,每个 Skill 独立可调用 |
| 🤖 AI 友好 | 完整 SKILL.md + YAML 描述,可被 Codex / Claude / Cursor 等 AI 直接识别 |
| 🛠️ 可拆可合 | 按需 pip install popdf / poimage / poword ...,不冗余 |
| 💬 中文友好 | 全中文文档、视频教程、微信答疑群 |
python-office 内置了一套 Skill 体系:把库里的 73 个方法封装成 73 个独立可调用的 Skill,
每个 Skill 有自己的 SKILL.md 文档,可以单独 import,也可以整体使用。
# 方式 1:直接调用具体 Skill
from skills.image import compress_image
compress_image(input_file='photo.jpg', output_file='photo_small.jpg', quality=30)
# 方式 2:按分类批量导入
from skills.pdf import pdf2docx
pdf2docx(input_file='report.pdf', output_file='report.docx')| 分类 | Skill 数量 | 典型 Skill |
|---|---|---|
| 📊 Excel | 7 | fake2excel / merge2excel / excel2pdf |
| 📁 File | 9 | replace4filename / get_files |
| 💰 Finance | 1 | t0(股票做 T 收益计算) |
| 🖼️ Image | 9 | compress_image / add_watermark / txt2wordcloud |
| 📝 Markdown | 1 | excel2markdown |
| 🔍 OCR | 1 | VatInvoiceOCR2Excel(增值税发票识别) |
| 13 | pdf2docx / pdf2imgs / merge2pdf / encrypt4pdf |
|
| 🎬 PPT | 3 | ppt2pdf / ppt2img / merge4ppt |
| 🛠️ Tools | 10 | transtools / qrcodetools / passwordtools |
| 🎥 Video | 4 | video2mp3 / audio2txt / txt2mp3 |
| 7 | send_message / chat_robot / receive_message |
|
| 📄 Word | 5 | docx2pdf / merge4docx / docx4imgs |
| �️ Ruiming | 3 | screen_unmarked_image / change_label_in_xml |
👉 查看完整 Skill 索引:skills/README.md
# 一键安装(推荐)
pip install -i https://mirrors.aliyun.com/pypi/simple/ python-office -U
# 按需安装子库(更轻量)
pip install popdf # 只用 PDF 处理
pip install poimage # 只用图片处理
pip install poword # 只用 Word 处理
pip install poexcel # 只用 Excel 处理Python 版本要求:Python 3.7+
# 1. PDF 转 Word
from skills.pdf import pdf2docx
pdf2docx(input_file='report.pdf', output_file='report.docx')
# 2. 批量压缩图片
from skills.image import compress_image
compress_image(input_file='big.jpg', output_file='small.jpg', quality=30)
# 3. 给图片加水印
from skills.image import add_watermark
add_watermark(file='photo.jpg', mark='@python-office')
# 4. 文本生成词云
from skills.image import txt2wordcloud
txt2wordcloud(filename='article.txt', result_file='wordcloud.png')
# 5. 生成二维码
from skills.tools import qrcodetools
qrcodetools(url='https://www.python-office.com', output='qrcode.png')每个功能既支持传统的 import office 方式,也支持从 skills.xxx 单独调用。
| 模块 | 功能 | Skills 路径 |
|---|---|---|
| PyOfficeRobot | 微信机器人 | skills/wechat/ |
| poocr | 文字识别(发票、表格、图片) | skills/ocr/ |
| popdf | PDF 转 Word / 图片 / 拆分 / 合并 / 加密 | skills/pdf/ |
| poemail | 自动发邮件 | office/api/email.py |
| porobot | AI 机器人 | office/api/tools.py |
| poimage | 图片压缩 / 水印 / 词云 / 滤镜 | skills/image/ |
| poai | AI 工具集 | office/lib/ |
| poexcel | Excel 合并 / 拆分 / 模拟数据 | skills/excel/ |
| poword | Word 转 PDF / 提取图片 | skills/word/ |
| pofile | 文件批量重命名 / 整理 | skills/file/ |
| search4file | 文档搜索 | skills/file/ |
| poppt | PPT 转 PDF / 图片 | skills/ppt/ |
| wftools | 翻译 / 二维码 / 密码生成等小工具 | skills/tools/ |
| pofinance | 股票做 T 计算 | skills/finance/ |
| pohan | 中文编程 | - |
| povideo | 视频转音频 / 语音识别 | skills/video/ |
| potime | 时间工具 | - |
| poprogress | 进度条工具 | - |
| pocode | 代码管理 | - |
📊 Excel 处理(点击展开)
from skills.excel import fake2excel
fake2excel(columns=['name', 'phone'], rows=1000, path='test.xlsx')
from skills.excel import merge2excel
merge2excel(dir_path='./my_excels', output_file='all.xlsx')📕 PDF 处理(点击展开)
from skills.pdf import pdf2docx # PDF → Word
from skills.pdf import pdf2imgs # PDF → 图片
from skills.pdf import merge2pdf # 合并多个 PDF
from skills.pdf import split4pdf # 拆分 PDF
from skills.pdf import encrypt4pdf # 加密 PDF
from skills.pdf import add_watermark_by_parameters # PDF 加水印🖼️ Image 图像处理(点击展开)
from skills.image import compress_image # 压缩图片
from skills.image import add_watermark # 加水印
from skills.image import del_watermark # 去水印
from skills.image import txt2wordcloud # 生成词云
from skills.image import pencil4img # 转铅笔画
from skills.image import img2Cartoon # 转卡通风格
from skills.image import decode_qrcode # 解析二维码💬 微信机器人(点击展开)
from skills.wechat import send_message
send_message(who='文件传输助手', message='Hello!')
from skills.wechat import send_message_by_time
send_message_by_time(who='文件传输助手', message='早安', time='08:00:00')🎬 Video 视频处理(点击展开)
from skills.video import video2mp3 # 视频 → MP3
from skills.video import audio2txt # 音频 → 文字
from skills.video import txt2mp3 # 文字 → 语音
from skills.video import mark2video # 视频加文字水印- � 中文文档
- 📗 English Document
- 🎬 视频教程
- 🤖 Skills 索引
python-office 欢迎任何人来添砖加瓦。建议提交的 PR 放在一个独立的文件夹下:
- 在 contributors 文件夹中,用自己的 GitHub 名字建一个文件夹;
- 把自己的所有代码,都提交到这个自己的文件夹里;
- 不要修改其它任何文件夹下的代码;
- 对现有代码有疑问,可以直接提 issue。
- 注释:请为每个新函数的参数、返回值添加说明
- 格式:只能格式化自己写的代码
- 测试:单元测试可选,但强烈推荐
- Skill:新增方法时,建议同时在
skills/<分类>/<方法名>/下加 Skill 封装
提交问题反馈时,请务必填写和 python-office 代码本身有关的问题,不进行 Python 学习或个人练习的答疑。
如果这个项目对你有帮助,欢迎 ⭐ Star 支持一下!