Agent skill

Office XLSX

by open-octo in open-octo/octo-agent

Create, read, and edit Excel (.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets…

MITAuto-check: notesDocuments & Office

Install Office XLSX

skills CLI
$ npx skills add open-octo/octo-agent --skill office-xlsx -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-octo/octo-agent office-xlsx --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-octo/octo-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/skills/defaults/office-xlsx .claude/skills/office-xlsx && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
office-xlsx
GitHub stars
125
Token cost
~1.8k tokens
SKILL.md length
882 words
Files
5 (incl. scripts)
Skills in repo
40
Repo updated
First seen
Licence
MIT

At a glance

Create, read, and edit Excel (.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets…

  • The user wants a spreadsheet created
  • SKILL.md covers Preflight: check for uv, Reading a spreadsheet, Creating or editing a… and Financial-model conventions…, plus 1 more section
  • Runs Python scripts from its folder; calls uv, pip and curl; reaches astral.sh
  • References an .xlsx file by name

What it does

Office XLSX is an agent skill from open-octo/octo-agent. Create, read, and edit Excel (.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets, charts, and data validation. Use whenever the user wants a spreadsheet created, inspected, or modified, or references an .xlsx file by name or path.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `PROVENANCE.md`, `scripts/xlsx_edit.py` and `scripts/xlsx_inspect.py`).

It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel, openpyxl and Python. The repository describes itself as: Open-source, single-binary, self-hosted AI agent — your models and data stay on your machine. A coding agent on par with Claude Code and a personal assistant lighter than… The licence is MIT.

When your agent uses it

  • The user wants a spreadsheet created
  • References an .xlsx file by name

Example prompts

  • “/office-xlsx”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit bbae80e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • uv
    • pip
    • curl
    • sh
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • astral.sh

    Also links to:

    • peps.python.org
    • docs.astral.sh

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Office XLSX loads about 1.8k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 882 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePipes a well-known installer script into a shellSKILL.md:21
    what's missing (`uv`, installable via `curl -LsSf https://astral.sh/uv/install.sh | sh` on macOS/Linux or the equivalen

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from open-octo/octo-agent at commit bbae80e, republished under its MIT licence (© open-octo). 882 words, ~1,772 tokens.

Download SKILL.mdSave it as .claude/skills/office-xlsx/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
office-xlsx
description
Create, read, and edit Excel (.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets, charts, and data validation. Use whenever the user wants a spreadsheet created, inspected, or modified, or references an .xlsx file by name or path.
license
MIT (adapted from claude-office-skills/skills; complete terms in LICENSE.txt)

XLSX Manipulation

Two scripts drive this skill, both built on openpyxl:

  • scripts/xlsx_inspect.py — read a workbook and print its structure (sheets, dimensions, header row, sample rows, formulas, merged cells) as JSON. Use this first on any existing file so you know what you're working with before editing it.
  • scripts/xlsx_edit.py — create a new workbook or edit an existing one by applying a JSON list of operations (set cell values/formulas, styling, merges, column widths, new sheets, charts, data validation).

Both scripts are self-contained: they declare their own dependency (openpyxl) via PEP 723 inline metadata, so uv run installs it into an ephemeral environment automatically — no project venv, no pip install step, nothing left behind on the machine.

Preflight: check for uv

Look at this session's toolchain note (or run uv --version) before the first script call:

  • uv present — run scripts directly: uv run <skill-dir>/scripts/xlsx_inspect.py <args>. Dependency install is automatic and silent; don't run a separate pip install openpyxl step, it isn't needed and may not even land in the environment uv run actually uses.
  • uv absent — do not assume python3/pip are available or silently install anything. Tell the user what's missing (uv, installable via curl -LsSf https://astral.sh/uv/install.sh | sh on macOS/Linux or the equivalent on Windows — see https://docs.astral.sh/uv/getting-started/installation/) and wait for their go-ahead before installing. If they'd rather not install uv, the fallback is a manual python3 -m venv/pip install openpyxl and running the scripts with python3 instead of uv run — but only after checking with the user, and only if python3/pip are themselves confirmed present.

Note: <skill-dir>/scripts/... paths are relative to this skill's own directory (its absolute path is in the location header injected when this skill is loaded) — they are not relative to the user's working directory. There is no persistent working directory across terminal calls; pass absolute paths for --input/--output/--ops.

Reading a spreadsheet

bash
uv run <skill-dir>/scripts/xlsx_inspect.py path/to/file.xlsx

Options:

  • --sheet NAME — inspect one sheet only (default: all sheets)
  • --rows N — number of sample data rows to include per sheet (default: 5)
  • --data-only — read cached formula results instead of formula text (only meaningful if the file was last saved by Excel/LibreOffice; openpyxl never computes formulas itself, so a file saved by openpyxl-only edits has no cached values to show)

Output is JSON: for each sheet, its dimensions, header row (best-effort: first non-empty row), sample rows, every formula cell found (address + formula text), and merged cell ranges. Read this before writing any edit operations so cell addresses and sheet names are correct.

Show full SKILL.md (478 more words)Show less

Creating or editing a spreadsheet

bash
uv run <skill-dir>/scripts/xlsx_edit.py --output out.xlsx --ops ops.json
uv run <skill-dir>/scripts/xlsx_edit.py --input existing.xlsx --output out.xlsx --ops ops.json
  • Omit --input to start from a blank workbook. Its one default sheet is named Sheet (not Sheet1) — the first add_sheet op on a blank workbook renames that default sheet instead of leaving an empty extra tab, so give it the name you actually want as your first sheet.
  • --input and --output may be the same path to edit in place.
  • --ops points to a JSON file (or pass inline JSON via --ops-json '...') containing a list of operation objects, applied in order. Supported operations:
opFieldsEffect
add_sheetname, index (optional)Create a new sheet
set_cellsheet, cell, valueSet one cell; a leading = makes it a formula
set_rowsheet, row, values (list, appended starting at column A of that row)Write a whole row at once
stylesheet, range (single cell or A1:C3), font (bold/italic/size/color/name), fill (color, solid), border (true = thin box), alignment (horizontal/vertical/wrap_text), number_formatApply formatting to a cell or range
mergesheet, rangeMerge a cell range
column_widthsheet, column (letter), widthSet column width
row_heightsheet, row, heightSet row height
freeze_panessheet, cellFreeze rows/columns above/left of cell
data_validationsheet, range, type, formula1, formula2 (optional), allow_blank (optional)Add a validation rule (e.g. type: "list" with formula1: '"Yes,No"')
chartsheet, type (bar|line|pie), data_range, categories_range, title, anchor, titles_from_data (optional, default true)Add a chart built from a data range on the same sheet

Ranges and cell references use normal Excel A1 notation. data_range/categories_range are parsed as Sheet!A1:B5 or, if the sheet is omitted, resolved against the chart's own sheet.

Formulas are not evaluated by openpyxl. set_cell with a =... value writes the formula text; Excel, LibreOffice, or Google Sheets will compute it on open. If a user needs computed values back out of the script (rather than just handing the file to Excel), that requires a spreadsheet engine this skill doesn't bundle — say so rather than approximating a result in Python and hardcoding it into the cell, which would silently go stale the next time an input changes.

Financial-model conventions worth following

When building anything that looks like a financial model (budgets, valuations, projections), keep the spreadsheet self-updating and readable:

  • Prefer formulas over Python-computed constants for anything derived from other cells — see the note above.
  • Use cell references for assumptions instead of hardcoding multipliers into formulas (=B5*(1+$B$6) rather than =B5*1.05), so a reader can find and change the assumption.
  • A common (not mandatory) color convention from financial-modeling style guides (e.g. Wall Street Prep): blue text for hardcoded inputs, black for formulas, green for cross-sheet links — apply via the style op's font.color field if the user wants this or it matches an existing template's convention.
  • If editing an existing template, match its existing formatting/conventions rather than imposing a different style.

Limitations

Inherited from openpyxl itself: no VBA macro execution, no live external data connections, and pivot tables/sparklines are not supported by these scripts.

© open-octo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts) in internal/skills/defaults/office-xlsx of open-octo/octo-agent.

  • SKILL.md
  • LICENSE.txt
  • PROVENANCE.md
  • scripts/xlsx_edit.py
  • scripts/xlsx_inspect.py

Open the folder on GitHubat commit bbae80e

Compare with similar skills

Office XLSX next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Office XLSX compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Office XLSX this skillopen-octo/octo-agent125—~1.8kAutomated safety check: NotesMIT
Excel Workbook EditorTokenRhythm/opensquilla7.1k—~1.6kAutomated safety check: PassApache-2.0
Kimi XLSXthvroyal/kimi-skills238—~9.5kAutomated safety check: PassNone
Cc Streaming Export Safetydoccker/cc-use-exp1.1k—~2.2kAutomated safety check: PassCustom licence
XLSXnexus-research-lab/nexus151—~501Automated safety check: PassApache-2.0
Office XLSXsingula-ai/alego1091 repos~2.3kAutomated safety check: PassMIT

Similar skills

  • Excel Workbook Editor

    TokenRhythm/opensquilla

    Inspects, edits in place or creates Microsoft Excel .xlsx workbooks with openpyxl, treating each cell as a typed number, string, datetime or formula value.

    7.1k GitHub stars~1.6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Kimi XLSX

    thvroyal/kimi-skills

    Specialized utility for advanced manipulation, analysis, and creation of spreadsheet files, including (but not limited to) XLSX, XLSM, CSV formats.

    238 GitHub stars~9.5k tokensUpdated 6 mo ago
    Documents & OfficeAuto-check passed
  • Cc Streaming Export Safety

    doccker/cc-use-exp

    当实现用户驱动的大文件导出或批量序列化(Excel/CSV/JSON/JSONL/PDF,数据量未知或超过 1 万行/10 MB)时触发;普通小文件下载、静态资源下载、非导出 Writer/Report 类不触发。防止 OOM、临时文件残留、同步导出阻塞 HTTP 线程和表格公式注入。

    1.1k GitHub stars~2.2k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • XLSX

    nexus-research-lab/nexus

    只要电子表格文件(.xlsx、.xlsm、旧版 .xls、.csv、.tsv)是任务的主要输入或输出,或者需要 被打开、读取、创建、修改,就使用本 Skill。也适用于公式、格式、图表、数据清洗和表格格式转换。

    151 GitHub stars~501 tokensUpdated today
    Documents & OfficeAuto-check passed
  • Office XLSX

    singula-ai/alego

    Read, create, and modify Excel workbooks (.xlsx), including data, formulas, formatting, and pandas analysis.

    109 GitHub starsUsed in 1 repo~2.3k tokens
    Documents & OfficeAuto-check passed
  • Create Spreadsheet

    theexperiencecompany/gaia

    Generate an Excel (.xlsx) workbook or a CSV file: tables, financial models, data exports, formatted reports with charts.

    308 GitHub stars~802 tokensUpdated yesterday
    Documents & OfficeAuto-check passed

More from open-octo/octo-agent

All 40 skills in this repo
  • Image Gen

    open-octo/octo-agent

    Acquire images as files — generate them with an AI image model (14 providers: OpenAI/gpt-image, Gemini, Qwen, Zhipu, Volcengine, Stability, FLUX, Ideogram, MiniMax, and more), search openly-licensed…

    125 GitHub stars~3.1k tokensUpdated yesterday
    Auto-check: notes
  • Artifact Design

    open-octo/octo-agent

    Design guidance for any HTML/Markdown file shown in octo's Artifacts panel — reports, dashboards, architecture/system diagrams, generated UIs, slide-style pages, 3D scenes.

    125 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Code Review

    open-octo/octo-agent

    Review local code changes. An agent skill from open-octo/octo-agent.

    125 GitHub stars~942 tokensUpdated yesterday
    Auto-check passed
  • Ppt Master

    open-octo/octo-agent

    AI-driven multi-format SVG content generation system. An agent skill from open-octo/octo-agent.

    125 GitHub stars~23k tokensUpdated yesterday
    Auto-check: warnings
  • Config Setup

    open-octo/octo-agent

    Configure octo's global settings through guided conversation — set up AI model endpoints (providers, API keys, models), adjust agent defaults (reasoning effort, permission mode, coauthor, workspace…

    125 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Contract Review

    open-octo/octo-agent

    审阅合同条款、识别风险点、给出修改建议。Use when 用户贴出或上传合同文本要求审查, 或提到"合同审查""帮我看看这份合同""这条款有没有问题""重大不利条款""合同风险" "review this contract"等。覆盖服务协议、劳动合同、保密协议(NDA)、采购合同、 租赁合同等常见合同类型,风险条款库为中英双语。仅做通俗的条款风险提示,…

    125 GitHub stars~666 tokensUpdated yesterday
    Auto-check passed

Questions about Office XLSX

What does Office XLSX do?

Create, read, and edit Excel (.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets…. Office XLSX is an agent skill from open-octo/octo-agent.xlsx) spreadsheets programmatically with openpyxl — cell values, formulas, styling (fonts/fills/borders/alignment/number formats), merged cells, multiple sheets, charts, and data validation.

When should I use Office XLSX?

Office XLSX fits situations like: the user wants a spreadsheet created; references an .xlsx file by name.

How do I install Office XLSX in Claude Code?

Run `npx skills add open-octo/octo-agent --skill office-xlsx -a claude-code`. Or copy the skill folder (internal/skills/defaults/office-xlsx in open-octo/octo-agent) into .claude/skills/office-xlsx in your project. Claude Code loads it when a task matches its description.

How do I install Office XLSX in Codex?

Run `npx skills add open-octo/octo-agent --skill office-xlsx -a codex`. Or copy the skill folder (internal/skills/defaults/office-xlsx in open-octo/octo-agent) into .agents/skills/office-xlsx in your project. Codex loads it when a task matches its description.

Can I use Office XLSX in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-octo/octo-agent --skill office-xlsx -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/office-xlsx, .gemini/skills/office-xlsx, .github/skills/office-xlsx and .opencode/skills/office-xlsx in your project.

What does Office XLSX need to run?

Going by SKILL.md and its folder, Office XLSX needs Python for the scripts in its folder and the command-line tools its instructions call (uv, pip, curl, sh and python3). Our summary lists: Python 3.

Does Office XLSX access the network?

SKILL.md names 3 domains. In commands or code: astral.sh; the agent is likely to contact it when it follows the instructions. As links in the text: peps.python.org and docs.astral.sh. This is read from the text; nothing was executed.

Is Office XLSX safe to install?

Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Office XLSX use?

Office XLSX is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Office XLSX use?

About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Office XLSX?

Skills that share tags, products or a category with Office XLSX: Excel Workbook Editor (TokenRhythm/opensquilla, 7.1k stars), Kimi XLSX (thvroyal/kimi-skills, 238 stars), Cc Streaming Export Safety (doccker/cc-use-exp, 1.1k stars) and XLSX (nexus-research-lab/nexus, 151 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Office XLSX?

open-octo (a GitHub organization) maintains it in open-octo/octo-agent, which has 125 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 10, 2026.

Source: open-octo/octo-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.