К основному содержанию
скилл CX Codex

xlsx · appautomaton — скилл для Claude Code: работа с Excel-книгами

Скилл для создания, правки и пересчёта книг Excel с живыми формулами, форматированием и диаграммами. Пригодится, когда агент должен выдать или изменить файл таблицы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add appautomaton/document-SKILLs --skill xlsx -a claude-code
Открыть на GitHub

Что делает xlsx

Скилл добавляет к работе с .xlsx и .xlsm то, чего не видно из кода: шаг пересчёта, который показывает, что в книге на самом деле сломано, и типичные ошибки openpyxl и LibreOffice, из-за которых файлы портятся молча.

Внутри — скрипт recalc.py. Запускать его нужно по абсолютному пути из рабочей папки пользователя, чтобы относительные пути к его файлам не поехали: uv run <skill>/scripts/recalc.py model.xlsx. Скрипт пересчитывает книгу в LibreOffice, записывает значения обратно и печатает JSON. Код возврата 0 — чисто, 1 — есть проблемы, 2 — запустить не удалось. Для пересчёта нужен установленный LibreOffice (soffice).

Для книг, которые вы отдаёте, берите openpyxl: он сохраняет формулы, форматирование, диаграммы, проверку данных и комментарии. pandas годится для анализа и массового чтения, но его запись оставляет только значения. Файлы .xlsm грузите с keep_vba=True, иначе макросы пропадут при сохранении. Отдельно учтите: data_only=True читает кэшированные значения, и сохранение такой книги навсегда заменяет формулы их последними значениями. Это повод проверить код, прежде чем открывать чужой файл в режиме только для чтения значений.

Какие задачи решает

  • собрать книгу Excel с формулами вместо захардкоженных чисел
  • пересчитать файл и увидеть, где формулы дают ошибки
  • превратить CSV или TSV в таблицу с форматированием
  • прочитать значения и формулы из готовой книги
  • сохранить макросы при правке файла .xlsm

Примеры запросов агенту

  • сделай книгу xlsx с помесячной выручкой и формулой итога
  • пересчитай model.xlsx и покажи, что сломалось
  • прочитай формулы из отчёта.xlsx и опиши, как он устроен

Как установить xlsx

1Через Skills CLI (Vercel)

npx skills add appautomaton/document-SKILLs --skill xlsx -a claude-code

2Вручную: положить файлы

~/.claude/skills/xlsx/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/xlsx/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о xlsx

Как установить xlsx в Claude?

Выполните npx skills add appautomaton/document-SKILLs --skill xlsx -a claude-code, затем проверьте файл ~/.claude/skills/xlsx/SKILL.md.

Что делает скилл xlsx?

Помогает агенту создавать, править и анализировать книги Excel, писать формулы вместо готовых значений и пересчитывать файл через LibreOffice, чтобы поймать ошибки до отдачи.

Что нужно для пересчёта книги?

Установленный LibreOffice: скрипт вызывает soffice. Если в книге есть ссылки на другие файлы, пересчёт останавливается, потому что иначе связанные значения перезапишутся.

Исходный текст

SKILL.md · MIT
---
name: xlsx
description: Create, edit, analyze, and recalculate Excel workbooks (.xlsx, .xlsm) with live formulas, formatting, and charts. Use when a task produces or modifies a spreadsheet file, turns CSV/TSV data into one, or needs values, formulas, or formatting read from one.
---

# Excel workbooks

You already know openpyxl and pandas. This skill adds what you can't see from the code: a recalculation step that reports what is actually wrong in the workbook, and the behaviours of openpyxl and LibreOffice that silently break files.

## Running scripts

`<skill>` is the directory containing this file. Run bundled scripts by absolute path from the user's working directory, so relative paths to their files keep working:

```bash
uv run <skill>/scripts/recalc.py model.xlsx
```

Run Python you write with its dependencies declared, either `uv run --with openpyxl script.py` or a PEP 723 header. Recalculation needs LibreOffice (`soffice`).

## Choosing a tool

- **openpyxl** for any workbook you deliver: formulas, formatting, charts, validation, comments. It keeps charts, images, comments, data validation and conditional formatting of files it loads. It drops what it does not model, such as shapes, text boxes, slicers and form controls, so check before editing a workbook that has them.
- **pandas** for analysis and bulk reads. Its writer keeps only values, so never use it to edit a workbook someone will keep working in.
- For `.xlsm`, load with `load_workbook(path, keep_vba=True)`, or the macros are lost on save.

## Formulas, not values

Anything derived belongs in the sheet as a formula, so the workbook stays correct when its inputs change. Compute in Python only what has no spreadsheet form, then write it as a labelled input.

```python
ws["B10"] = "=SUM(B2:B9)"          # not ws["B10"] = df["Sales"].sum()
ws["C5"] = "=(C4-C2)/C2"           # growth, from the cells it depends on
ws["D3"] = "=B3*(1+$B$1)"          # assumptions live in their own cells
```

## Checking the output

openpyxl writes formulas without values, so a file is not finished until it has been recalculated. Run this after every save that touched formulas, and fix what it reports before delivering:

```bash
uv run <skill>/scripts/recalc.py model.xlsx
```

It recalculates in LibreOffice, writes the values back into the file, and prints JSON. The exit status is 0 when clean, 1 when there are problems, and 2 when it could not run.

| Field | Meaning and fix |
|---|---|
| `errors` | Error values by type, e.g. `{"#DIV/0!": {"count": 3, "locations": ["Model!C7", …]}}`, with at most 50 locations per type. Fix the formulas at those cells. |
| `missing_prefix` | Newer functions written without the prefix the file format requires (see below). The file is left untouched, and each entry carries the corrected formula in `fix`. |
| `circular_references` | Groups of cells that depend on each other. LibreOffice shows these as `#VALUE!`, so fix the cycle first. |
| `uncalculated` | Formulas LibreOffice left without a value. Usually a function LibreOffice does not implement; the workbook may still work in Excel, but tell the user. |

Links to other workbooks make it stop, because recalculating would overwrite the linked values. Pass `--force` only if the user accepts that.

## Pitfalls that fail silently

- **Function prefixes.** Functions newer than Excel 2007 are stored with a prefix. Write `=_xlfn.XLOOKUP(…)`, `=_xlfn.TEXTJOIN(…)`, `=_xlfn.IFS(…)`, and `=_xlfn._xlws.FILTER(…)` and `=_xlfn._xlws.SORT(…)`. Without it, Excel and LibreOffice both show `#NAME?`. recalc catches these before they do damage. LibreOffice older than 24.8 (`soffice --version`) lacks XLOOKUP, XMATCH, FILTER, SORT, SORTBY, UNIQUE, SEQUENCE and LET, so recalc flags them even when prefixed; the workbook still computes in Excel, so tell the user rather than rewriting the formulas.
- **Inserting or deleting rows and columns.** `insert_rows`, `delete_rows`, `insert_cols` and `delete_cols` move cells but do not rewrite any formula that refers to them. `=SUM(B1:B4)` stays `=SUM(B1:B4)` after a row is inserted above it. Rewrite the affected formulas yourself, or lay out the sheet so nothing needs inserting.
- **`data_only=True`** reads cached values. Saving a workbook opened that way replaces every formula with its last value, permanently.
- **Dynamic arrays.** openpyxl cannot write spilling formulas. FILTER, SORT, UNIQUE and SEQUENCE land in one cell, and Excel prefixes them with `@`. Prefer formulas that return one value per cell.
- **Indexing.** Rows and columns are 1-based. Use `get_column_letter` and `column_index_from_string`; never count letters by hand past column Z.

## Charts

Use openpyxl's native charts (`openpyxl.chart`) for charts that belong in the workbook; they stay linked to the cells. Render matplotlib images only when the chart is going somewhere else.

## Existing workbooks and templates

Study the file before changing it, and match its fonts, fills, number formats, column widths and layout exactly. Its conventions override everything below.

## Financial models

Unless the user or the template says otherwise:

- **Font colour by role:** blue `0000FF` for hard-coded inputs, black for formulas, green `008000` for links to other sheets, red `FF0000` for links to other files. A yellow `FFFF00` fill marks key assumptions.
- **Number formats:**
  - Currency: `$#,##0;($#,##0);-`, with units in the header, e.g. "Revenue ($mm)".
  - Percentages: `0.0%`.
  - Multiples: `0.0x`.
  - Negatives: in parentheses.
  - Years: written as text, so "2026" never becomes "2,026".
- **Structure:** every assumption sits in its own labelled cell and is referenced, never typed into a formula. Each projection period uses the same formula as the one before it.
- **Sources:** give every hard-coded number a source in a cell comment or an adjacent cell, e.g. "Source: Company 10-K, FY2025, p. 45".

© appautomaton · MIT · appautomaton/document-SKILLs

Похожие скиллы

Всё по теме «Документы и офис» →

Сначала — xlsx от других авторов.

xlsx официальный anthropics Работает с табличными файлами: создаёт, читает, правит и преобразует книги. Подходит, когда итогом должен стать файл Excel или другой табличный формат. 187 223установок xlsx tfriedel Скилл задаёт строгие правила генерации таблиц: сохраняет формулы динамическими, оформляет финансовые отчёты и валидирует ячейки. CX Codex +1 2 500установок xlsx bobmatnyc Скилл для чтения, записи и правки Excel-файлов из кода: openpyxl, pandas и библиотека xlsx для JavaScript. CX Codex +1 588установок kimi-xlsx thvroyal Скилл для работы с таблицами: собирает .xlsx через openpyxl и pandas, проверяет формулы и строит сводные таблицы с графиками. CX Codex +1 430установок xlsx-manipulation claude-office-skills Скилл для работы с Excel-таблицами из кода: создаёт и правит .xlsx через openpyxl, добавляет формулы, форматирование и графики. CX Codex +1 6 500установок agent-xlsx apetta Скилл учит агента читать, искать и писать данные в таблицах Excel через CLI agent-xlsx. Пригодится, когда нужно разобрать чужой отчёт или собрать выгрузку. CX Codex +1 766установок excel-automation daymade Создаёт отчёты Excel через openpyxl, читает сложные модели xlsm через zipfile и управляет окном приложения на macOS. Пригодится для финотчётов и переноса бумажных бланков в таблицы. CX Codex +1 1 500установок minimax-xlsx MiniMax-AI Скилл для создания, чтения, редактирования и проверки Excel-файлов (.xlsx, .xlsm, .csv, .tsv) прямо в коде. Пригодится, если нужно обработать табличные данные, построить финмодель или исправить формулы без потери форматирования. CX Codex +1 3 800установок xlsx-generator agent-skills Скилл собирает и правит файлы XLSX: подставляет данные в готовый шаблон или создаёт книгу с нуля по JSON-описанию. CX Codex +1 393установок

Из того же набора3

Спонсоры проекта

Компании, которые помогают держать аналитику открытой