office-transform

Featured

Derive new Office files from structural selections without touching the original. Use when the user points at part of a spreadsheet, Word document, PDF, or PowerPoint deck (a worksheet range, paragraph, page, slide, shape, or a pasted selection-ref block) and wants it extracted, converted, or edited — the result is always a NEW file; the source file is never modified. Covers xlsx range extraction to csv/markdown/xlsx, docx paragraph extraction and text replacement, pdf page extraction, pptx slide/shape/table-cell extraction and editing, and targeted xlsx cell edits.

Data & Documents 52,164 stars 5010 forks Updated today AGPL-3.0

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Office Transform Turn a structural selection of an Office/PDF document into a new derived file. Two invariants hold for every operation: 1. **The source file is read-only.** Every result is a new file; both scripts refuse to write to the source path or overwrite an existing file. Never work around this with ad-hoc shell edits to the original. 2. **Anchors are structural.** Selections address the document's own coordinates — worksheet + A1 range, body-level paragraph ordinal, one-based page number — never screen or DOM positions. ## When to use which tool - Only need to *read* a document to summarize or answer questions → use `mcp__cherry-tools__to_markdown` instead (see the cherry-tool-guide skill); it is lossy but built for reading. - The user wants a *file* out — an extracted range, a converted fragment, an edited copy → this skill. ## Input: selection references Chat surfaces may hand you a fenced `selection-ref` block: ```selection-ref {"path": "/abs/report.xlsx", "anchor": {"format": "xlsx", "sheet": "Sheet1", "range": "A1:C10"}, "excerpt": "…", "fileStamp": {"size": 1024, "mtimeMs": 1700000000000}} ``` The `anchor` object is exactly what the scripts take via `--anchor`. **Freshness check.** `fileStamp.mtimeMs` is milliseconds since the Unix epoch, floored to whole milliseconds. Do not compare it to `stat`'s default output: `stat -f %m` (macOS) and `stat -c %Y` (GNU) give whole *seconds*, so multiplying by 1000 loses the sub-second part and ...

Details

Author
CherryHQ
Repository
CherryHQ/cherry-studio
Created
2 years ago
Last Updated
today
Language
TypeScript
License
AGPL-3.0

Similar Skills

Semantically similar based on skill content — not just same category

Data & Documents Listed

09-core-use-office-cli-for-office-files

CORE — never delete. Trigger before you read, modify, or create any Microsoft Office file (.docx, .xlsx, .pptx) on the local machine. OfficeCLI is the local-first MCP for working ON Office files with human-like read+edit fidelity. Splits the two cases honestly: cheap one-off TEXT extraction may use a lighter/faster parser; anything where formatting, structure, tables, or round-trip fidelity matters — or any WRITE — goes through OfficeCLI.

0 Updated 3 weeks ago
markkennethbadilla
Data & Documents Listed

officecli

Create, analyze, proofread, and modify Office documents (.docx, .xlsx, .pptx) via officecli. Use when creating, inspecting, checking formatting, finding issues, adding charts, or editing Office files.

24 Updated today
tomcounsell
Data & Documents Listed

editing-office-docs

Use when programmatically inserting, modifying, or extracting content in Microsoft Word .doc/.docx documents via python-docx — especially adding chapters/sections/tables to an existing structured Word file, working with legacy binary .doc, or batch edits needing visible highlight markers. Targets the Windows + LibreOffice toolchain and the non-obvious python-docx gotchas (missing Table Grid style, mandatory table width arg, insertion-order scramble, silent content loss) that break naive approaches. Trigger on: 改Word/补充文档章节/往docx插表格/doc转docx/标黄修改处/审计意见补章节.

1 Updated 3 days ago
Luohao-Yan