xlsx
Skill28 starsChanged 2 months agoMITView on GitHub
Create, read, edit Excel .xlsx workbooks and CSVs.
- Installs packages
194 other projects use a version of this, 4 of them edited.
Adopted by
Most recently taken up by
- aditya-vermax/skillstheir own version, first seen Nov 8, 2026
- CloudChef/atlasclaw-providerstheir own version, first seen Nov 8, 2026
- holon-run/holontheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- BrightGold70/skillstheir own version, first seen Nov 8, 2026
- Liang-MH/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use Video Generation, VLM and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
huang-x-hSkillVideo Generation
Implement AI-powered video generation capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to generate videos from text prompts or images, create video content programmatically, or build applications that produce video outputs. Supports asynchronous task management with status polling and result retrieval.
Also in 6 projects that use this
huang-x-hSkillVLM
Implement vision-based AI chat capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze images, describe visual content, or create applications that combine image understanding with conversational AI. Supports image URLs and base64 encoded images for multimodal interactions.
Also in 6 projects that use this
dav-niu474Skillgift-evaluator
The PRIMARY tool for Spring Festival gift analysis and social interaction generation. Use this skill when users upload photos of gifts (alcohol, tea, supplements, etc.) to inquire about their value, authenticity, or how to respond socially. Integrates visual perception, market valuation, and HTML card generation.
Also in 5 projects that use this
dav-niu474SkillPodcast Generate
Generate podcast episodes from user-provided content or by searching the web for specified topics. If user uploads a text file/article, creates a dual-host dialogue podcast (or single-host upon request). If no content is provided, searches the web for information about the user-specified topic and generates a podcast. Duration scales with content size (3-20 minutes, ~240 chars/min). Uses z-ai-web-dev-sdk for LLM script generation and TTS audio synthesis. Outputs both a podcast script (Markdown) and a complete audio file (WAV).
Also in 5 projects that use this
Liang-MHSkillstock_analysis
获取 A 股、基金和港股的实时行情和技术分析数据
Also in 5 projects that use this
SeifBenayedSkillfile-reading
Use this skill when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploaded_files block. This skill is a router: it tells you which tool to use for each file type (pdf, docx, xlsx, csv, json, images, archives, ebooks) so you read the right amount the right way instead of blindly running cat on a binary. Triggers: any mention of /mnt/user-data/uploads/, an uploaded_files section, a file_path tag, or a user asking about an uploaded file you have not yet read. Do NOT use this skill if the file content is already visible in your context inside a documents block — you already have it.
Also in 5 projects that use this
- +1 more from huang-x-h
- +5 more from dav-niu474
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 4
- aivrar/portable-hermes-agent★ 23999% same
- Samin12/skills★ 898% same
- rmusser01/tldw-stuff★ 299% same
- ashleysbrain/skills★ 199% same
Wrote their own version · 190
- anthropics/skills★ 189ksame name
- spinabot/brigade★ 11ksame name
- netease-youdao/LobsterAI★ 6.2ksame name
- nextlevelbuilder/goclaw★ 3.7ksame name
- jjyaoao/HelloAgents★ 3.2ksame name
- anthropics/claude-agent-sdk-demos★ 2.8ksame name
- K-Dense-AI/claude-scientific-writer★ 2.6ksame name
- OpenCoworkAI/open-cowork★ 2.2ksame name
- wanxingai/LightAgent★ 1.2ksame name
- ChenglinPoly/infiAgent★ 1.2ksame name
180 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository69 other files it gives its agents.
- agent/AGENTS.mdAGENTS.md
- AGENTS.mdAGENTS.md
- cron/AGENTS.mdAGENTS.md
- gateway/AGENTS.mdAGENTS.md
- loki_cli/AGENTS.mdAGENTS.md
- plugins/AGENTS.mdAGENTS.md
- skills/AGENTS.mdAGENTS.md
- tools/AGENTS.mdAGENTS.md
- tui_gateway/AGENTS.mdAGENTS.md
- web/AGENTS.mdAGENTS.md
- llms-full.txtllms.txt
- apple-notesSkill
- apple-remindersSkill
- findmySkill
- imessageSkill
- claude-codeSkill
- codexSkill
- computer-useSkill
- loki-agentSkill
- opencodeSkill
- architecture-diagramSkill
- ascii-videoSkill
- baoyu-infographicSkill
- claude-designSkill
- design-mdSkill
- humanizerSkill
- manim-videoSkill
- p5jsSkill
- popular-web-designsSkill
- songwriting-and-ai-musicSkill
- sdlc-reviewSkill
- email-inbox-triageSkill
- himalayaSkill
- gif-searchSkill
- songseeSkill
- youtube-contentSkill
- obsidianSkill
- airtableSkill
- boxSkill
- document-to-action-itemsSkill
- docxSkill
- google-workspaceSkill
- mapsSkill
- meeting-action-itemsSkill
- notionSkill
- pdfSkill
- powerpointSkill
- product-price-monitorSkill
- teams-meeting-pipelineSkill
- weekly-review-planningSkill
- arxivSkill
- competitor-news-monitorSkill
- grounded-citationsSkill
- llm-wikiSkill
- xurlSkill
- codebase-inspectionSkill
- dogfoodSkill
- githubSkill
- inspecting-loki-desktop-domSkill
- loki-agent-skill-authoringSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 0 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 188 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
Not for the legacy .xls binary format (use LibreOffice to convert first: soffice --headless --convert-to xlsx old.xls).
- Very specific: line 48
Run the helper scripts with the terminal tool from this skill's scripts/ directory (every script supports --help):
- Very specific: line 95
Create: write a JSON spec (schema documented in xlsx_create.py --help and its docstring).
- Very specific: line 151
Only the first sheet lands in a CSV.
- Very specific: line 176
CSV locale traps: always pass explicit encodings (the scripts already do) and remember European CSVs often use .
- Very specific: line 187
After creating: xlsx_read.py out.xlsx --sheets and confirm sheet names, dimensions, merged ranges, and chart counts match intent.
- Very specific: line 190
After edits: re-dump the touched range.
- Very specific: line 192
After xlsx_restructure.py: read its JSON report, then re-run --formulas and --sheets to confirm references and ranges landed where expected.
“Common” is measured: kept by at least 6 in 10 of the 188 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Xlsx Skill
Work with Excel .xlsx workbooks using Python and openpyxl: build styled multi-sheet workbooks with formulas and charts, inspect or dump existing files, edit cells and structure, and convert to/from CSV. All helper scripts are argparse CLIs that print JSON and use explicit UTF-8 I/O.
When to Use
- Creating .xlsx reports: multiple sheets, number formats, styling, merged cells, freeze panes, autofilter, conditional formatting, charts, data-validation dropdowns, native Excel tables, defined names, hyperlinks, cell notes, sheet protection.
- Reading a workbook: sheet inventory, dumping data as JSON or CSV, listing formulas vs cached values, notes, defined names, tables.
- Editing existing files: set cells, append rows, insert/delete
rows/columns (reference-aware via
xlsx_restructure.py), copy/rename sheets, tables, names, notes, protection. - Recalculating formulas headlessly via LibreOffice
(
xlsx_recalc.py). - CSV interop with type inference and non-UTF-8 encodings.
- Not for the legacy .xls binary format (use LibreOffice to convert
first:
soffice --headless --convert-to xlsx old.xls).
Prerequisites
- Python 3.10+ with
openpyxl(pip install openpyxl). No other third-party packages are needed; everything else is stdlib. - Optional: LibreOffice (
soffice) for headless recalculation or format conversion.
How to Run
Run the helper scripts with the terminal tool from this skill's
scripts/ directory (every script supports --help):
python scripts/xlsx_create.py spec.json report.xlsx # build from JSON spec
python scripts/xlsx_read.py report.xlsx --sheets # inventory
python scripts/xlsx_read.py report.xlsx --json --sheet Data
python scripts/xlsx_read.py report.xlsx --formulas
python scripts/xlsx_edit.py report.xlsx --sheet Data --set B2=42 --recalc
python scripts/xlsx_restructure.py report.xlsx --sheet Data --insert-rows 3:2
python scripts/xlsx_recalc.py report.xlsx
python scripts/csv_to_xlsx.py data.csv out.xlsx --encoding utf-8
python scripts/xlsx_to_csv.py report.xlsx out.csv --sheet DataAuthor the JSON spec with write_file, inspect script JSON output with
read_file or directly from stdout.
Quick Reference
| Task | Command | |
| Create workbook from spec | xlsx_create.py spec.json out.xlsx | |
| Sheet names + dimensions | xlsx_read.py f.xlsx --sheets | |
| Dump sheet as JSON | xlsx_read.py f.xlsx --json --sheet S | |
| Dump sheet as CSV | xlsx_read.py f.xlsx --csv --out d.csv | |
| List formulas + cached values | xlsx_read.py f.xlsx --formulas | |
| Set a cell / formula | xlsx_edit.py f.xlsx --set "A1==SUM(B:B)" | |
| Append a row | xlsx_edit.py f.xlsx --append '[1,"x",true]' | |
| Insert 2 rows, refs NOT shifted | xlsx_edit.py f.xlsx --insert-rows 3:2 | |
| Insert 2 rows, refs shifted | xlsx_restructure.py f.xlsx --insert-rows 3:2 | |
| Delete a column, refs shifted | xlsx_restructure.py f.xlsx --delete-cols B | |
| Create a native table | xlsx_edit.py f.xlsx --add-table Sales:A1:C9 | |
| Append inside a table | --table-append 'Sales=["West",5]' | |
| List tables | xlsx_edit.py f.xlsx --list-tables | |
| Defined names | --define-name "Rates='Data'!$B$2:$B$9" / --delete-name Rates / xlsx_read.py f.xlsx --names | |
| Hyperlink | `--hyperlink "A1=https://example.com | Docs"` |
| Cell note | `--note "B2=Check this | Reviewer"; read via xlsx_read.py f.xlsx --notes` |
| Protect sheet (see Pitfalls) | --protect your-password --unlock B2:B9 | |
| Recalculate via LibreOffice | xlsx_recalc.py f.xlsx | |
| Copy / rename sheet | --copy-sheet Src:New --rename-sheet Old:New | |
| Force recalc on open | xlsx_edit.py f.xlsx --recalc | |
| CSV -> styled xlsx | csv_to_xlsx.py in.csv out.xlsx | |
| xlsx -> CSV | xlsx_to_csv.py f.xlsx out.csv --encoding utf-8 |
Procedure
- Create: write a JSON spec (schema documented in
xlsx_create.py --helpand its docstring). Each sheet supportsrows(scalars or styled cell objects), sparsecellsoverrides,column_widths,row_heights,merges,freeze_panes,autofilter,conditional_formats(cell_is rules and color scales),charts(bar/line/pie from cell ranges),validations(list dropdowns),tables(native Excel tables with a style name), andprotection. Workbook-leveldefined_namesmaps names to refs. Cell objects also takehyperlinkandnote. Typed values: JSON numbers/bools pass through; dates use{"value": "2026-01-31", "type": "date"}. Number formats are Excel format strings: currency"$#,##0.00", percent"0.0%", date"yyyy-mm-dd". - Formulas: set with
"formula": "SUM(B2:B9)"in the spec or--set "C1==SUM(A:A)"in the editor. When writing formulas, add"full_calc_on_load": true(spec) or--recalc(editor); this sets the workbook'sfullCalcOnLoadflag so Excel/LibreOffice recompute everything on open. openpyxl itself NEVER evaluates formulas. - Read:
--sheetsfor inventory (names, dimensions, merged ranges, chart count, tables, protection, defined names),--json/--csvfor data,--formulasto pair each formula string with its cached result,--notesfor cell comments,--namesfor defined names. Cached results exist only if the file was last saved by a real spreadsheet app; files fresh from openpyxl returnnullthere. To materialize results headlessly runxlsx_recalc.py file.xlsx(uses LibreOffice; prints{"recalculated": false, ...}and exits 0 whensofficeis absent), then reload with--data-only. - Edit:
xlsx_edit.pyapplies renames/copies first, then structural row/column changes, then--set/--append. It edits in place unless--outis given — copy the file first if you need the original. - Restructure: for insert/delete on sheets that have formulas,
merges, tables, or filters, use
xlsx_restructure.pyinstead ofxlsx_edit.py. It rewrites formula references on ALL sheets (absolute$refs, ranges, cross-sheet refs), shifts merges, autofilter, freeze panes, validation and conditional-format ranges, table refs, defined names, and row/column dimensions, then prints a JSON report including anot_shiftedlist. Rules and limits:references/restructuring.md. - CSV interop:
csv_to_xlsx.pyinfers int/float/bool/ISO-date per cell and styles the header row;xlsx_to_csv.pywrites ISO dates and blank strings for empty cells. Both default to UTF-8 and accept--encoding(e.g.utf-8-sigfor Excel-friendly BOM,cp1252for legacy Windows exports).
Converting to PDF
LibreOffice converts headlessly (also works for CSV export of a single sheet):
soffice --headless --convert-to pdf report.xlsx --outdir out/
soffice --headless --convert-to csv report.xlsx --outdir out/ # 1st sheet onlyOnly the first sheet lands in a CSV; for other sheets use
xlsx_to_csv.py --sheet NAME. If soffice is missing, install
LibreOffice or hand the file to the user unconverted.
Pitfalls
- openpyxl does not calculate. Formula results are available only
via
load_workbook(path, data_only=True)and only when the file was previously saved by Excel/LibreOffice. Otherwise you getNone. xlsx_edit.pyinsert/delete does not shift references (raw openpyxl behavior). Usexlsx_restructure.py, which does — but even it cannot move chart anchors, images, or conditional-format RULE formulas; read its JSON report'snot_shiftedlist andreferences/restructuring.md.- Sheet protection is NOT security.
--protectsets the standard xlsx sheet-protection hash: it signals "don't edit this" to well-behaved apps and nothing more. Anyone can strip it by editing the zip's XML or unchecking it in LibreOffice. Never rely on it for confidentiality or integrity; it does not encrypt anything. data_only=Truethen save silently discards all formulas (cached values replace them). Never save a workbook loaded that way unless that is the goal.- Loading strips charts/images: openpyxl does not round-trip charts, so editing a charted workbook and saving drops the charts. Re-add charts after editing, or avoid re-saving charted files.
- CSV locale traps: always pass explicit encodings (the scripts
already do) and remember European CSVs often use
;delimiters and decimal commas — use--delimiter ';'and expect strings like"12,5"to stay strings. - Dates are datetimes: Excel stores dates as serial numbers;
openpyxl returns
datetime/dateobjects. Dumps here emit ISO strings. - Sheet names are capped at 31 chars and reject
[ ] : * ? / \.
Verification
- After creating:
xlsx_read.py out.xlsx --sheetsand confirm sheet names, dimensions, merged ranges, and chart counts match intent. - Dump data with
--jsonand compare against the source values. - After edits: re-dump the touched range; if formulas were written,
confirm
--formulaslists them and that--recalcwas applied. - After
xlsx_restructure.py: read its JSON report, then re-run--formulasand--sheetsto confirm references and ranges landed where expected. - For a full visual check, open in LibreOffice:
soffice --headless --convert-to pdf out.xlsxand inspect the PDF.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

