🚀 Office automation, one line of code at a time
81 ready-to-use Skills covering PDF, Word, Excel, PPT, Email, WeChat, Images, Video and more
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-officeimport office # one import, all features available| Feature | |
|---|---|
| 🎯 One-line code | 90% of features need only office.module.method() — zero learning curve |
| 🧩 81 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 81+ features still evolving |
| 📦 One import | import office brings everything; or import individually |
| 🛡️ Stable | Used by thousands of projects, Apache-2.0 licensed |
🚧 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 |
| Excel Processing | PPT Processing | Video / Audio |
|---|---|---|
| Mock data / Merge / Split | Convert / Snapshot | Extract audio / Subtitle |
| 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 |
python-office ships with a built-in Skill system: the library's 81 methods are wrapped as 81 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)| Category | Skills | Typical Skills |
|---|---|---|
| 📊 Excel | 12 | fake2excel / merge2excel / excel2pdf |
| 📁 File | 10 | 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) |
| 13 | pdf2docx / pdf2imgs / merge2pdf / encrypt4pdf |
|
| 🎬 PPT | 3 | ppt2pdf / ppt2img / merge4ppt |
| 🛠️ Tools | 10 | transtools / qrcodetools / passwordtools |
| 🌐 Web | 1 | url2ebook |
| 🎥 Video | 5 | video2mp3 / audio2txt / txt2mp3 / video_edit |
| 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
# 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 onlyPython version: Python 3.7+ Install issues? 📝 Troubleshooting
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 & agentspo --help lists all modules and commands (python -m office works as an alias).
# 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 watermarkpython-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 |
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 | - |
- v1.x: 81 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!
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
- Comments: Document every parameter and return value of new functions
- Formatting: Format only your own code
- Tests: Unit tests are optional but strongly recommended
- Skills: When adding a new method, also add a Skill wrapper under
skills/<category>/<method>/
Thanks to everyone who makes python-office better!
Please only submit issues related to the python-office codebase itself. We don't answer general Python learning questions.
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
This project is licensed under the Apache License 2.0.
The full license text is available in the LICENSE file at the root of this repository.
- 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
👉 Join the open-source community · WeChat the author 👈
If this project helps you, a ⭐ Star is the best encouragement!