Data & Analysis

DeepTutor XLSX Skill

Equips an agent to read, create, and edit Excel workbooks and CSV tables — data, formulas, styles, charts, and multi-sheet files in one skill.

60/ 100
Recommended

Generally reliable with disclosed limitations; trial as directed and keep a rollback path.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 41k
Last updated
19d ago
License
Apache-2.0
openpyxlexcelxlsxcsv
+4spreadsheet-processingchartsformula-recalculationpython

What does this skill do, and when should you use it?

This is one of DeepTutor's built-in office skills, teaching the model to handle .xlsx/.xlsm workbooks and .csv/.tsv tables with Python's openpyxl library. It can read, create, or edit workbooks including cell data, formulas, styles, charts, merged cells, and multi-sheet structures. Its core value is turning openpyxl's well-known pitfalls — above all that formulas are written but never computed — into explicit operating rules so the model gets it right in one sandbox run. It requires a code-execution sandbox (enabled by default in every DeepTutor deployment shape), optionally paired with LibreOffice for formula recalculation.

  • Reads .xlsx/.xlsm with openpyxl: streaming row-by-row for large files, or data_only=True to fetch formula cached values
  • Builds workbooks from scratch: data, formulas, font/fill/alignment styles, number formats, freeze panes, multi-sheet layout, with immediate reopen-and-validate
  • Edits existing workbooks while preserving styles, formulas, merged cells, and charts — no lossy pandas round-trip
  • Creates BarChart/LineChart/PieChart/ScatterChart and streams large exports via write-only mode
  • Converts and cleans .csv/.tsv in bulk, sampling messy input before normalizing only requested rows/columns
  • When writing live formulas, recalculates cached values through LibreOffice (soffice) or writes Python-computed static numbers, then scans for #REF!/#DIV/0! error values to verify output
Good fit
  • A data analyst hands over a messy sales CSV and wants the agent to clean headers, drop junk rows, and emit a clean xlsx
  • Finance/ops staff need bulk new summary columns, formulas, and thousands separators on a long report while keeping the original template styling
  • A teacher or researcher converts experiment data into a multi-sheet Excel deliverable with charts (bar/line/pie)
  • Users merging, splitting, or restructuring large workbooks want streaming read/write to avoid memory blowups
  • A DeepTutor deployer wants the agent to produce downloadable Excel files in chat (works out of the box with the default sandbox)
Not a fit
  • Tasks involving Google Sheets API or Word/PDF/script outputs — the skill description explicitly excludes these
  • Deployments without a code-execution sandbox (e.g. host installs with sandbox_allow_subprocess disabled) — office skills cannot produce files there
  • Users who need formulas with correct cached values immediately but have no LibreOffice installed — only the static-numbers option or Excel-open recalculation remains

How do you install this skill?

Before you use it
  • This is a static source-only review; no skill instructions or code were executed, and all scores carry low confidence.
  • Formula-bearing workbooks produced with openpyxl have empty cached values until opened in Excel; downstream tools reading cached values will see blanks — prefer writing computed numbers as the skill advises.
  • The recalc path is unavailable without LibreOffice, in which case the skill can only warn the user to reopen the file in Excel.
  • Repository tests do not cover this skill path; correctness currently rests on documentation claims alone.
  • The publisher is unverified by the FollowSkills registry and treated as unknown; verify the install source before use.
Before you start
Your agent needs
  • Shell / CLI
  • Local filesystem
Install first
  • Python
  • openpyxl
  • sandbox with code execution (exec tool)
  • LibreOffice (optional, for formula recalculation)

This skill ships inside the DeepTutor repository (deeptutor/skills/builtin/xlsx/SKILL.md) and is installed with the main program — no separate install step. Set up the DeepTutor runtime first:

DeepTutor (PyPI full install)

pip install -U deeptutor
deeptutor init
deeptutor start

DeepTutor (from source)

git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
python3 -m venv .venv && source .venv/bin/activate
python -m pip install -e .
deeptutor init
deeptutor start

DeepTutor (Docker)

docker run --rm --name deeptutor -p 127.0.0.1:3782:3782 -v deeptutor-data:/app/data ghcr.io/hkuds/deeptutor:latest

Note: execution relies on the code-execution sandbox (on by default); setting sandbox_allow_subprocess to false in data/user/settings/system. stops this skill from producing files.

How do you use this skill?

Try saying

Once installed, send your agent any of these to trigger it:

  • Read sales.csv, normalize the headers, drop empty rows, and output a clean sales_clean.xlsx with thousands separators
  • Add a percentage-of-total column and a totals row to this budget workbook, keeping the existing fonts and colors
  • Turn the experiment data into a two-sheet workbook: a Summary sheet with a frozen header and a bar chart, and a Detail sheet with the raw data
  • Open report.xlsx and replace the formula in B10 with the computed number — no formula strings

The skill is a SKILL.md playbook the model reads on demand — any chat request involving Excel/CSV triggers it. The model submits complete Python source through the exec tool (openpyxl), ideally creating, saving, reopening, and validating the workbook in a single call; later calls can revise the same relative filename. Key options: if the deliverable only needs correct values, write Python-computed static numbers; if a live formula model is needed, write real formulas and prefer recalculation via soffice; read computed results with data_only=True, and never save() a workbook loaded that way (formulas are permanently discarded). Finished files come back as download URLs.

What are this skill's strengths and limitations?

Pros
  • Encodes openpyxl's classic traps (formulas never computed, data_only save destroys formulas, insert_rows doesn't rewrite references) as explicit rules, reducing error rates
  • openpyxl is declared in every supported DeepTutor installation — no extra dependency to manage
  • Covers the full pipeline: read, create, edit, charts, CSV, raw OOXML, with built-in output verification (ZIP integrity + error-value scan)
  • Provides write-only streaming writes and read_only streaming reads for large sheets
Limitations
  • openpyxl has no formula engine: files with formulas have empty cached values until opened in Excel, and recalculation depends on optional LibreOffice (soffice), which not every environment has
  • Requires a host-side sandbox running model-generated code; the skill is fully inoperative when sandbox_allow_subprocess=false
  • pandas is not guaranteed available in every install (bundled only in the Docker runner), limiting heavier data analysis
  • Row/column inserts and deletes do not auto-fix formula references — formula-heavy structural edits still need manual care

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
DeepTutor XLSX Skill this page 60 · Recommended ★ 41k 19d ago Apache-2.0
xlsx Spreadsheet Skill 49 · Use with care ★ 3.1k 8mo ago MIT
XLSX Spreadsheet Skill ✓ Anthropic · Official 40 · Not recommended ★ 181k 17d ago —
OfficeCLI Data Dashboard Skill 57 · Use with care ★ 32k 14d ago Apache-2.0
Excel Data Cleaning Assistant ✓ Anthropic · Official 54 · Use with care ★ 40k 1mo ago Apache-2.0

The DeepTutor repository also bundles sibling office skills — docx, pdf, pptx — sharing the same exec/sandbox mechanism but using python-docx, reportlab, and similar libraries; the xlsx skill covers only spreadsheet deliverables. Pick the matching sibling skill for documents or PDFs.

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Recommended
60/ 100 5-point scale 3.0 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust18 / 25 · 3.6/5

Skill declares only sandbox: shell, relies on openpyxl already declared as a dependency, reads/writes within the user workspace via relative paths, makes no network calls, touches no credentials, has no destructive defaults, and explicitly warns against /tmp or desktop installs — data flow is transparent. Deducted for: no independent rollback mechanism (preserving the source file is advice, not enforced), user confirmation delegated to the host rather than specified by the skill, and unverified publisher (not itself a deduction but attribution evidence is limited).

2Reliability9 / 20 · 2.3/5

Instructions are self-consistent: the formula-caching gotcha, never saving data_only=True workbooks, manual formula re-pointing after structural shifts are all accurate; output self-verification (error-string scan, zip integrity check) is a plus. Deducted for: static review executed nothing, repository tests (e.g. test_api_endpoints.py) do not cover this skill path, and failure feedback on abnormal input (corrupt/encrypted xlsx) is unevidenced.

3Adaptability12 / 15 · 4.0/5

Scenarios are clear (read/create/edit xlsx, csv/tsv), the description explicitly excludes Google Sheets API and Word/PDF outputs, non-fit boundaries are stated, and runtime assumptions are concrete (openpyxl declared in every install, pandas must not be assumed). Deducted for: no file-level input/output contract examples, and performance boundaries for very large files get only a passing mention.

4Convention11 / 15 · 3.7/5

Docs are well layered (Runtime → Gotcha → read/create/edit/charts/verify/CSV/OOXML), frontmatter has name/description/requires, the repo carries an Apache-2.0 LICENSE, pyproject packages SKILL.md files as package data, and releases are active. Deducted for: the skill itself has no version number, changelog, or known-limitations list; maintenance responsibility is only inferable from the repo as a whole.

5Effectiveness6 / 15 · 2.0/5

Guidance targets real pain points (formula cached values, format-preserving edits, degradation path without LibreOffice), and the recommended alternative (write computed numbers) has clear marginal value. Deducted for: static review cannot confirm outputs are directly usable; effectiveness rests on the written plausibility of the snippets with no representative output verified.

6Verifiability4 / 10 · 2.0/5

Technical claims (openpyxl does not compute formulas, saving data_only workbooks discards formulas — labeled 'verified') can be cross-checked against public library behavior; snippets are independently runnable; pyproject confirms openpyxl>=3.1.0 is a declared dependency. Deducted for: 'verified' is author self-attestation, there is no test or CI coverage of this skill path, and the third-party-execution-evidence bar for exceeding the static cap of 5 is not met.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Sep 09, 2026 Reviewed revision 7a96bba1ae03 Review evidence[1][2][3][4][5][6][7][8]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

Any cost or extra APIs involved?
No. The skill ships with Apache-2.0-licensed DeepTutor and uses only local Python plus openpyxl; the sole optional external dependency is a local LibreOffice install (for formula recalculation).
The formulas I wrote compute to blank — what now?
openpyxl stores formula strings but never computes them. If soffice is present, the skill recalculates via subprocess and swaps in fresh cached values; otherwise either write Python-computed static numbers instead, or accept that formulas populate when the user opens the file in Excel/LibreOffice.
Why won't the skill run at all?
It requires a sandbox: shell code-execution environment. If your deployment disabled the subprocess sandbox (sandbox_allow_subprocess=false or no sandbox backend), the exec tool doesn't mount and office skills cannot produce files.
How large a spreadsheet can it handle?
Read with read_only=True to stream rows cheaply and write with write_only=True appending row by row, so you don't hold every cell object in memory; actual limits depend on sandbox resources.

More skills from this repository

All from HKUDS/DeepTutor

Related skills