DeepTutor xlsx Skill
Lets an agent read, create, and edit Excel workbooks and CSV/TSV tables — data, formulas, styles, charts, and multi-sheet files.
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).
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.
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.
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.
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.
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.
- 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.
What does this skill do, and when should you use it?
This is the built-in xlsx skill from the DeepTutor repository (deeptutor/skills/builtin/xlsx/SKILL.md), instructing the model to read, create, and edit .xlsx/.xlsm files with Python's openpyxl library, plus bulk .csv/.tsv handling. It covers cells, formulas, styles, merged cells, multi-sheet workbooks, number formats, and charts, and it foregrounds the critical gotcha that openpyxl writes but never computes formulas. The skill runs inside a shell-capable sandbox via the exec tool, producing ready-to-deliver workbook files. It is one of 6 built-in skills bundled with DeepTutor, an open-source (Apache-2.0) agent-native tutoring platform.
The skill is a SKILL.md playbook that directs the model to: stream-read large workbooks with openpyxl's load_workbook, or read cached formula results with data_only=True; create workbooks from scratch with headers, data, styles (fonts, fills, alignment, number formats), freeze panes, and extra sheets, validating the saved file immediately via load_workbook and a zipfile integrity check; edit existing files while preserving formatting, never round-tripping through pandas; stream large exports in write-only mode; build bar/line/pie/scatter charts via openpyxl.chart; convert and clean messy CSV/TSV with the csv module; and handle the formula-never-computed problem with two strategies — compute values in Python and write static numbers, or write live formulas and, when soffice is available, recalculate via LibreOffice; finally, reload the output and scan for #REF!, #DIV/0!, and other error strings to verify cleanliness.
- An educator or researcher with a messy Excel grade sheet that needs cleaning, new columns, and summary formulas before handoff
- An analyst given a multi-sheet .xlsx data source who wants to extract and analyze data without breaking existing formatting
- Building a report workbook from scratch with styles, frozen headers, and charts
- Bulk CSV/TSV exports where memory-friendly streaming writes matter
- A live financial or statistical model where formulas must stay intact and recalculate when the user later edits in Excel
What are this skill's strengths and limitations?
- Explicitly calls out and solves the openpyxl 'writes formulas, never computes them' gotcha with two clear strategies, so default output is correct immediately
- Covers the full read/create/edit/chart/CSV pipeline and requires immediate post-save validation plus formula-error scanning
- Emphasizes preserving existing formatting on edits, avoiding style-destroying pandas round-trips
- openpyxl is declared available in every supported DeepTutor installation — no extra dependency to install
- Requires a sandbox with Python code execution; unusable in environments without shell access
- openpyxl has no formula engine: cached values in formula-bearing files stay blank until Excel opens them, and formulas can't be pre-verified without LibreOffice
- Inserting/deleting rows or columns does not rewrite formulas referencing shifted cells — they must be re-pointed manually
- Explicitly out of scope: Google Sheets API and Word/PDF/script outputs
- No automated test suite ships with the skill; verification relies on runtime checks in the generated code
How do you install this skill?
This is a built-in skill shipped with the DeepTutor repository — no separate install is needed. Full platform install: pip install -U deeptutor, then deeptutor init and deeptutor start (requires Python 3.11+ and Node.js 20+); alternatively clone https://github.com/HKUDS/DeepTutor and install from source. To reuse it in another Agent Skills-compatible client, copy the deeptutor/skills/builtin/xlsx/ directory into the client's skills location; the source does not document a standalone install command.
How do you use this skill?
In a DeepTutor conversation, simply make a request where a spreadsheet is the input or deliverable, e.g.: "Read data.xlsx, add a month-over-month growth column, and generate a bar chart." The skill requires the exec/code_execution sandbox tools (the README states these mount by default in local/Docker deployments, and route to a runner sidecar in docker-compose). If the sandbox_allow_subprocess setting is disabled, office skills can no longer produce files. On trigger, the model writes and runs an openpyxl Python script, then hands back a download URL.
How does this skill compare with similar options?
Within the DeepTutor ecosystem it complements the sibling docx/pdf/pptx built-in skills (for Word, PDF, and PowerPoint deliverables); the skill itself explicitly excludes Google Sheets API and office-document outputs, so users should pick the matching skill by deliverable type.