name: office-document-editor description: Professional DOCX/PPTX document editing with tracked changes, formatting preservation, highlights, strikethrough, and Git version control. license: MIT metadata: openclaw: requires: bins: - uv - curl install: - id: uv-env kind: uv path: . bins: [docx_editor.py, pptx_editor.py, generate_diff.py]
Professional document editing for any DOCX/PPTX file from any source.
| Task | Approach |
|---|---|
| Fetch file from upload | bash scripts/fetch_file.sh upload |
| Fetch file from URL | bash scripts/fetch_file.sh https://example.com/file.docx |
| Fetch file from SFTP | bash scripts/fetch_file.sh sftp://user@host:/path/file.docx |
| Edit DOCX | uv run python scripts/docx_editor.py input.docx output.docx edits.json |
| Edit PPTX | uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json |
| Generate diff | uv run python scripts/generate_diff.py old.docx new.docx diff.md |
| Interactive mode | bash scripts/interactive_edit.sh |
# Get latest uploaded DOCX
bash scripts/fetch_file.sh upload output.docx
# Get latest uploaded PPTX
bash scripts/fetch_file.sh upload output.pptx
Location: ~/.openclaw/workspace/media/inbound/file_*.docx
# Copy from local path
bash scripts/fetch_file.sh ~/Documents/report.docx output.docx
# Or direct path
bash scripts/fetch_file.sh /absolute/path/file.pptx output.pptx
# Download from URL
bash scripts/fetch_file.sh https://example.com/document.docx output.docx
# Fetch via SFTP
bash scripts/fetch_file.sh sftp://user@host:/path/file.docx output.docx
Create edits.json with your editing instructions:
{
"description": "Edit description",
"replacements": [
{
"search": "old text",
"replace": "new text",
"style": "highlight"
}
],
"additions": [
{
"after": "after this text",
"text": "add this text",
"style": "highlight"
}
],
"slides": [
{
"action": "rearrange",
"order": [0, 2, 1, 3]
}
]
}
replace - Direct replacementhighlight - Yellow highlightdelete - Strikethroughbold - Bold textunderline - Underline發現更多技能外掛,請訪問7w4.net。
rearrange - Change slide orderadd - Add new slideremove - Delete slideuv run python scripts/docx_editor.py input.docx output.docx edits.json
Features: - Paragraph text editing - Table cell editing - Format preservation - Multiple replacements - Text additions
uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json
Features: - Slide text replacement - Slide rearrangement - Add/remove slides - Format preservation
uv run python scripts/generate_diff.py input.docx output.docx diff-report.md
Output: Standard Unified Diff format in Markdown.
# From upload
bash scripts/fetch_file.sh upload input.docx
# From URL
bash scripts/fetch_file.sh https://example.com/file.docx input.docx
# From local path
bash scripts/fetch_file.sh ~/Documents/file.docx input.docx
{
"description": "IRB Review Response",
"replacements": [
{
"search": "2026 年 2 月 28 日",
"replace": "2026 年 8 月 31 日",
"style": "highlight"
}
]
}
uv run python scripts/docx_editor.py input.docx output.docx edits.json
# Unified Diff
uv run python scripts/generate_diff.py input.docx output.docx diff.md
# Convert to Markdown
uv run markitdown output.docx > output.md
git add *.docx *.md diff.md
git commit -m "Edit: Description of changes"
For guided editing:
bash scripts/interactive_edit.sh
This will prompt you through: 1. File source selection 2. Edit type selection 3. Details collection 4. Output location
{
"replacements": [
{
"search": "February 28, 2026",
"replace": "August 31, 2026",
"style": "highlight"
}
]
}
{
"additions": [
{
"after": "What is the research topic?",
"text": "[ANSWER] Data Structures and Algorithms",
"style": "highlight"
}
]
}
{
"slides": [
{
"action": "rearrange",
"order": [0, 2, 1, 3, 4]
}
]
}
python-docx requires exact match (including spaces, punctuation, newlines) for table text.
Solutions:
1. Use shorter search strings
2. Use markitdown to preview table content first
3. Use exact match in JSON
.gitignorecd ~/.openclaw/workspace/skills/office-document-editor
uv sync
Cause: Text doesn't match exactly
Solution:
# Preview content
uv run markitdown input.docx
# Use exact text from preview
Solution:
cd ~/.openclaw/workspace/skills/office-document-editor
uv sync
Solutions: - Check file path is correct - Try uploading the file again - Verify URL is accessible - Check SFTP credentials
Universal file fetcher for all source types.
bash scripts/fetch_file.sh <source> [output_filename]
Sources:
- upload - Latest uploaded file
- /path/to/file - Local path
- https://... - Public URL
- sftp://... - SFTP remote
Edit Word documents with formatting.
uv run python scripts/docx_editor.py input.docx output.docx edits.json
Edit PowerPoint presentations.
uv run python scripts/pptx_editor.py input.pptx output.pptx edits.json
Generate Unified Diff reports.
uv run python scripts/generate_diff.py old.docx new.docx diff.md
Interactive guided editing.
bash scripts/interactive_edit.sh
Complete automated workflow.
bash scripts/workflow_complete.sh input.docx edits.json
這個 Skill 功能豐富、文件完善,能處理 Word 和 PowerPoint 文件的多種編輯需求,支援從不同來源獲取檔案。編輯功能實用,提供了差異對比和版本控制等進階特性。文件清晰易懂,有故障排除指南。但部分功能有侷限:PPTX 文件的高亮效果可能不如預期,表格編輯需要精確匹配文字,複雜格式和圖片處理能力有限。總體質量良好,適合基本文件編輯場景,但對精細格式要求高的使用者可能需要額外注意。