Excel Automation
Create polished Excel reports, crack open complex xlsm financial models that openpyxl chokes on, and drive Excel windows on macOS via AppleScript.
Docs & OfficeIntermediate★ 1,323⑂ 212AI score 9/10Last updated: Aug 8, 2026
What it does
Splits Excel work into three lanes and picks the right tool for each.
- Create: Builds reports with
openpyxlusing investment-banking color conventions (blue = hardcoded input, black = formula, green = cross-sheet link), number format codes ($#,##0,0.0%,0.0x), and color-scale conditional formatting for sensitivity tables. - Parse: When openpyxl hangs or fails on >1MB workbooks, VBA-laden
.xlsmfiles, or broker-supplied financial models, it drops to stdlibzipfile+xml.etreeto resolve sheet names throughworkbook.xml.rels, extract cell values via the sharedStrings lookup, and strip corrupteddefinedNameentries ("Formula removed") to repair the file. - Control: On macOS,
osascriptcommands activate Excel, set zoom, scroll to a row/column, select ranges, and switch sheets — always wrapped intimeoutso a non-responsive Excel never blocks your session.
A tool-selection decision tree and a "common mistakes" table (e.g., never trust the file extension — run file <path> first) make it unusually practical.
Who it's for
- Financial analysts and finance teams working with DCF/valuation models
- Data engineers blocked by xlsm files that openpyxl refuses to load
- Office workers rebuilding the same formatted report every month
- Anyone automating Excel screenshots or demos on macOS
Examples
- "Turn this revenue data into a monthly report with dark-blue header bands and blue-font assumption cells" → a fully formatted xlsx in one pass.
- "This 3MB model.xlsm from the bank won't open in openpyxl — pull the DCF sheet" → lists sheets via zipfile+XML, then extracts the cell grid.
- "Open Excel, jump to the DCF tab, scroll to row 45, and take a screenshot" → chained AppleScript with render delays and timeout guards.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the excel-automation folder from the GitHub repo daymade/claude-code-skills into my ~/.claude/skills/excel-automation/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/daymade/claude-code-skills.git && mkdir -p ~/.claude/skills && cp -r claude-code-skills/excel-automation ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open your terminal.
- Clone the skills repository:
git clone https://github.com/daymade/claude-code-skills.git - Create the Claude Code skills folder and copy this skill in:
mkdir -p ~/.claude/skills cp -r claude-code-skills/excel-automation ~/.claude/skills/ - Install
uv, the Python runner the scripts rely on (uv run --with openpyxl):curl -LsSf https://astral.sh/uv/install.sh | sh - (Optional) For the window-control features you need macOS with Microsoft Excel installed, and you must grant Terminal automation access under System Settings > Privacy & Security > Automation.
- Restart Claude Code, then just ask it to "build an Excel report" or "parse this xlsm" and the skill triggers automatically.
View source on GitHub ↗License: MIT