Read Microsoft Word documents (.docx and .doc) with Chinese support
by @vincent-big-fish
Read Microsoft Word documents (.docx and .doc) with Chinese support. Extract text, search keywords, and save as UTF-8 text files. No Microsoft Word installat...
clawhub install read-wordπ About This Skill
name: read-word description: Read Microsoft Word documents (.docx and .doc) with Chinese support. Extract text, search keywords, and save as UTF-8 text files. No Microsoft Word installation required. version: 1.0.0 author: εΆζζ΄ license: MIT tags: [document, word, docx, doc, office, read, parse, extract]
Read Word Document
A professional tool for reading Microsoft Word documents, supporting both modern .docx and legacy .doc formats with full Chinese language support.
Features
Installation
Prerequisites
pip install python-docx olefile
Install Skill
# Copy to your OpenClaw skills directory
cp -r read-word ~/.openclaw/skills/
Usage
Command Line
# Basic reading (shows first 100 paragraphs)
python ~/.openclaw/skills/read-word/read_word.py "document.docx"Show more content
python ~/.openclaw/skills/read-word/read_word.py "document.docx" --limit 200Search for keywords
python ~/.openclaw/skills/read-word/read_word.py "document.docx" --search "keyword1,keyword2"Save as text file
python ~/.openclaw/skills/read-word/read_word.py "document.docx" --output "output.txt"Show document info only
python ~/.openclaw/skills/read-word/read_word.py "document.docx" --info
Python API
# Method 1: Import functions
import sys
sys.path.insert(0, '~/.openclaw/skills/read-word')
from read_word import read_word_document, search_in_documentRead document
paragraphs = read_word_document("document.docx")
for para in paragraphs:
print(para)Search keywords
results = search_in_document("document.docx", ["keyword1", "keyword2"])
Examples
Example 1: Read and Analyze
from read_word import read_word_documentparagraphs = read_word_document("report.docx")
print(f"Document has {len(paragraphs)} paragraphs")
Show first 10 paragraphs
for i, p in enumerate(paragraphs[:10]):
print(f"{i+1}. {p}")
Example 2: Search Keywords
from read_word import search_in_documentFind paragraphs containing "kitchen" or "feng shui"
results = search_in_document("book.docx", ["kitchen", "feng shui"])
for r in results:
print(r)
Example 3: Batch Processing
from pathlib import Path
from read_word import read_word_documentdesktop = Path.home() / "Desktop"
for doc_file in desktop.glob("*.docx"):
paragraphs = read_word_document(doc_file)
print(f"{doc_file.name}: {len(paragraphs)} paragraphs")
API Reference
read_word_document(filepath)
Read a Word document and return a list of paragraphs.Parameters:
filepath (str|Path): Path to the Word documentReturns:
list: List of paragraph stringsRaises:
FileNotFoundError: If file doesn't existValueError: If file format is not supportedsearch_in_document(filepath, keywords)
Search for keywords in a Word document.Parameters:
filepath (str|Path): Path to the Word documentkeywords (list): List of keywords to search forReturns:
list: Matching paragraphs with format "[Paragraph N] content"save_as_text(paragraphs, output_path)
Save paragraphs to a UTF-8 text file.Parameters:
paragraphs (list): List of paragraph stringsoutput_path (str|Path): Output file pathanalyze_document(filepath)
Analyze document and return statistics.Returns:
dict: Contains filename, size, paragraphs count, total charactersTroubleshooting
Error: ModuleNotFoundError: No module named 'docx'
Solution:pip install python-docxError: Legacy .doc file shows garbled text
Reason: OLE parsing has limitations with complex formatting Solution: Convert .doc to .docx using Microsoft Word, then readError: Chinese characters display incorrectly
Reason: Terminal encoding issue Solution: Use--output to save to file, then open with editorFile Support
| Format | Extension | Support Level | |--------|-----------|---------------| | Word 2007+ | .docx | Full | | Word 97-2003 | .doc | Partial (text only) | | Word 95/6.0 | .doc | Not supported | | Rich Text | .rtf | Not supported |
Permissions
--outputSecurity
Risk Level: LOW - Local file operations only, no network access, original files are never modified.
Changelog
v1.0.0 (2026-03-20)
Author
εΆζζ΄ (Ye Wenjie) - Created for reading Feng Shui books and Word documents
License
MIT License
π‘ Examples
Example 1: Read and Analyze
from read_word import read_word_documentparagraphs = read_word_document("report.docx")
print(f"Document has {len(paragraphs)} paragraphs")
Show first 10 paragraphs
for i, p in enumerate(paragraphs[:10]):
print(f"{i+1}. {p}")
Example 2: Search Keywords
from read_word import search_in_documentFind paragraphs containing "kitchen" or "feng shui"
results = search_in_document("book.docx", ["kitchen", "feng shui"])
for r in results:
print(r)
Example 3: Batch Processing
from pathlib import Path
from read_word import read_word_documentdesktop = Path.home() / "Desktop"
for doc_file in desktop.glob("*.docx"):
paragraphs = read_word_document(doc_file)
print(f"{doc_file.name}: {len(paragraphs)} paragraphs")
βοΈ Configuration
pip install python-docx olefile
Install Skill
# Copy to your OpenClaw skills directory
cp -r read-word ~/.openclaw/skills/
π Tips & Best Practices
Error: ModuleNotFoundError: No module named 'docx'
Solution:pip install python-docxError: Legacy .doc file shows garbled text
Reason: OLE parsing has limitations with complex formatting Solution: Convert .doc to .docx using Microsoft Word, then readError: Chinese characters display incorrectly
Reason: Terminal encoding issue Solution: Use--output to save to file, then open with editor