Skip to main content

中文 · 中文文档 · English

python-office

python-office

🚀 Office automation, one line of code at a time
73 ready-to-use Skills covering PDF, Word, Excel, PPT, Email, WeChat, Images, Video and more

PyPI Total Downloads GitHub stars Gitee stars Python Windows WeChat


⚡ TL;DR

python-office is the most popular Python office-automation library in the Chinese-speaking world. One library covers 90% of office scenarios: PDF / Word / Excel / PPT conversion, image processing, video & audio, WeChat bot, email, file management, OCR, AI tools... Zero Python knowledge required — every feature is one line of code.

pip install python-office
import office  # one import, all features available

✨ Key Features

Feature
🎯 One-line code 90% of features need only office.module.method() — zero learning curve
🧩 73 Skills Every feature independently importable, install only what you need
🤖 AI-friendly Each Skill ships SKILL.md + YAML, recognizable by Codex / Claude / Cursor
🌏 Beginner-friendly Full tutorials, video guides, and an active WeChat community
🪶 Lightweight pip install popdf / poimage / poword for sub-libraries — no bloat
🔄 Continuously updated Actively maintained, with 73+ features still evolving
📦 One import import office brings everything; or import individually
🛡️ Stable Used by thousands of projects, MIT licensed

📸 Demo

🚧 Showcase area — replace these with your own screenshots or GIFs

Image Processing PDF Processing WeChat Bot
Watermark / Word cloud / Sketch Convert / Merge / Encrypt Broadcast / Smart chat
demo-image demo-pdf demo-wechat
Excel Processing PPT Processing Video / Audio
Mock data / Merge / Split Convert / Snapshot Extract audio / Subtitle
demo-excel demo-ppt demo-video

🧭 Quick Navigation

What do you want to do? Jump to
First time here 📦 Installation
See 5 examples 🚀 Quick Start
Find a specific feature 🛠️ Components or skills/README.md
Understand the Skills system ✨ Skills system
Ask the community 💬 Contact
Contribute code 🤝 Contributing

🧩 Skills system (73 ready-to-use Skills)

python-office ships with a built-in Skill system: the library's 73 methods are wrapped as 73 independently importable Skills, each with its own SKILL.md documentation.

💡 Why Skills? Skills let Codex, Claude, Cursor and other AI tools automatically recognize your request and call the right function.

# Option 1: Import a specific Skill
from skills.image import compress_image
compress_image(input_file='photo.jpg', output_file='photo_small.jpg', quality=30)

# Option 2: Import by category
from skills.pdf import pdf2docx
pdf2docx(input_file='report.pdf', output_file='report.docx')

# Option 3: Original office style (still works)
import office
office.image.compress_image(input_file='photo.jpg', output_file='photo_small.jpg', quality=30)

📋 13 Categories at a Glance

Category Skills Typical Skills
📊 Excel 7 fake2excel / merge2excel / excel2pdf
📁 File 9 replace4filename / get_files
💰 Finance 1 t0 (stock T+0 return calculator)
🖼️ Image 9 compress_image / add_watermark / txt2wordcloud
📝 Markdown 1 excel2markdown
🔍 OCR 1 VatInvoiceOCR2Excel (VAT invoice recognition)
📕 PDF 13 pdf2docx / pdf2imgs / merge2pdf / encrypt4pdf
🎬 PPT 3 ppt2pdf / ppt2img / merge4ppt
🛠️ Tools 10 transtools / qrcodetools / passwordtools
🎥 Video 4 video2mp3 / audio2txt / txt2mp3
💬 WeChat 7 send_message / chat_robot / receive_message
📄 Word 5 docx2pdf / merge4docx / docx4imgs
🏷️ Ruiming 3 screen_unmarked_image / change_label_in_xml

👉 Full index: skills/README.md


📦 Installation

# Install everything (recommended)
pip install -i https://mirrors.aliyun.com/pypi/simple/ python-office -U

# Install only what you need (lighter)
pip install popdf      # PDF processing only
pip install poimage    # Image processing only
pip install poword     # Word processing only
pip install poexcel    # Excel processing only

Python version: Python 3.7+ Install issues? 📝 Troubleshooting


💻 CLI: the po command

Installing python-office also gives you a terminal command — no Python code needed:

po pdf merge2pdf a.pdf b.pdf --output-file merged.pdf
po excel excel2pdf report.xlsx report.pdf
po tools url2ip www.python-office.com

po --json tools url2ip www.python-office.com   # one-line JSON for scripts & agents

po --help lists all modules and commands (python -m office works as an alias).


🚀 Quick Start

# 1. PDF → Word
from skills.pdf import pdf2docx
pdf2docx(input_file='report.pdf', output_file='report.docx')

# 2. Compress an image
from skills.image import compress_image
compress_image(input_file='big.jpg', output_file='small.jpg', quality=30)

# 3. Add a watermark to an image
from skills.image import add_watermark
add_watermark(file='photo.jpg', mark='@python-office')

# 4. Generate a word cloud
from skills.image import txt2wordcloud
txt2wordcloud(filename='article.txt', result_file='wordcloud.png')

# 5. Generate a QR code
from skills.tools import qrcodetools
qrcodetools(url='https://www.python-office.com', output='qrcode.png')

🎬 Video tutorials: https://www.python-office.com/video/video.html


📊 Excel Processing (click to expand)
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 Processing (click to expand)
from skills.pdf import pdf2docx       # PDF → Word
from skills.pdf import pdf2imgs        # PDF → images
from skills.pdf import merge2pdf       # Merge multiple PDFs
from skills.pdf import split4pdf       # Split a PDF
from skills.pdf import encrypt4pdf     # Encrypt a PDF
from skills.pdf import add_watermark_by_parameters  # PDF watermark
🖼️ Image Processing (click to expand)
from skills.image import compress_image       # Compress images
from skills.image import add_watermark        # Add watermark
from skills.image import del_watermark        # Remove watermark
from skills.image import txt2wordcloud        # Generate word cloud
from skills.image import pencil4img           # Pencil-sketch style
from skills.image import img2Cartoon          # Cartoon style
from skills.image import decode_qrcode        # Decode QR code
💬 WeChat Bot (click to expand)
from skills.wechat import send_message
send_message(who='File Transfer', message='Hello!')

from skills.wechat import send_message_by_time
send_message_by_time(who='File Transfer', message='Good morning', time='08:00:00')
🎬 Video Processing (click to expand)
from skills.video import video2mp3       # Video → MP3
from skills.video import audio2txt       # Audio → text
from skills.video import txt2mp3         # Text → speech
from skills.video import mark2video      # Video watermark

🌟 Use Cases

python-office fits the following roles and scenarios:

👤 Role 🎯 Scenario
📊 Office workers Batch process PDF, Excel, Word, PPT — 10x efficiency
🎓 Students / Teachers Paper formatting, test grading, resource organization
👨‍💻 Developers Automation scripts, crawler data processing, batch files
🤖 AI enthusiasts Let AI auto-call tools for complex office tasks
📷 Content creators Batch image processing, video-to-audio, QR generation
💼 Finance / HR Invoice OCR, Excel merging, file organization

🛠️ Components

Each feature is accessible via the traditional import office style, or directly from skills.xxx.

Module Description Skills Path
PyOfficeRobot WeChat bot skills/wechat/
poocr OCR (invoice, table, image) skills/ocr/
popdf PDF → Word / image / split / merge / encrypt skills/pdf/
poemail Auto-send emails office/api/email.py
porobot AI bot office/api/tools.py
poimage Image compress / watermark / word cloud / filters skills/image/
poai AI utilities office/lib/
poexcel Excel merge / split / mock data skills/excel/
poword Word → PDF / extract images skills/word/
pofile Batch file rename / organize skills/file/
search4file Document search skills/file/
poppt PPT → PDF / image skills/ppt/
wftools Translation / QR code / password generator, etc. skills/tools/
pofinance Stock T+0 calculator skills/finance/
pohan Chinese programming -
povideo Video → audio / speech recognition skills/video/
potime Time utilities -
poprogress Progress bar utilities -
pocode Code management -

🗺️ Roadmap

  • v1.x: 73 Skills covering all office automation scenarios
  • Skills system: Every feature independently AI-callable
  • v2.0: Plugin architecture with custom Skill support
  • Web GUI: Visual operation interface
  • More AI capabilities: AI writing, AI data analysis
  • Enterprise edition: Private deployment + permission management

Feel free to submit requests in Issues!


📝 Documentation


🤝 Contributing

Contributions are welcome. Please submit your PR in a dedicated folder:

  • Create a folder with your GitHub username under contributors
  • Put all your code inside that folder
  • Do not modify any other folders
  • For questions about existing code, please open an issue

Code Style

  1. Comments: Document every parameter and return value of new functions
  2. Formatting: Format only your own code
  3. Tests: Unit tests are optional but strongly recommended
  4. Skills: When adding a new method, also add a Skill wrapper under skills/<category>/<method>/

Contributors ✨

Thanks to everyone who makes python-office better!


🐞 Bug Reports & Suggestions

Please only submit issues related to the python-office codebase itself. We don't answer general Python learning questions.


💖 Sponsor

If python-office has saved you significant time, please consider supporting continued development:

  • ⭐ Star this repo — the biggest support
  • 🗣️ Tell your friends — word of mouth
  • 💰 WeChat tip — see the QR code at the bottom of this README
  • 🐛 Contribute code — submit a PR or Issue

📜 License

This project is licensed under the MIT License.

MIT License

Copyright (c) 2026 CoderWanFeng

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

🙏 Acknowledgments

  • Thanks to all contributors and issue reporters
  • Thanks to the python4office community
  • Inspired by outstanding open-source projects like Requests, FastAPI, LangChain
  • Built with ❤️ in China

⭐ Star History

Stargazers over time


📌 Contact the Author

👉 Join the open-source community · WeChat the author 👈


If this project helps you, a ⭐ Star is the best encouragement!

Metadata

Release files for python-office 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-office 1.1.0
File Size Uploaded Provenance Actions
python_office-1.1.0.tar.gz 121.3 kB Without provenance Details for python_office-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for python-office 1.1.0
File Interpreter ABI Platform Actions
python_office-1.1.0-py3-none-any.whl Python 3 none any Details for python_office-1.1.0-py3-none-any.whl

Total release size: 284.9 kB

Release files / python_office-1.1.0.tar.gz

Download URL python_office-1.1.0.tar.gz
Size 121.3 kB
Tags Source
SHA-256 checksum
How to use checksums
738409a70f19765fa7b8f05aec92403279869c69798bee4d697f4ddfb2660504
BLAKE2b-256 checksum
How to use checksums
611734f44cb1778ec1531a863d6a2316c5a1d2f6a54f955ab9bf5c3a9f1238e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / python_office-1.1.0-py3-none-any.whl

Download URL python_office-1.1.0-py3-none-any.whl
Size 163.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87dfded4f155e49a9a1f4b8bedc5bef7526de11bc1e7cfcd605fec8ff462d031
BLAKE2b-256 checksum
How to use checksums
30f4838d3826677a044224e851851f3e101893de8b33da5873208da482ee38c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Security for python-office 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page