Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Spreadsheet { action: "check_errors", file_path: "output.xlsx" }Unless otherwise stated by the user or existing template
The Spreadsheet tool handles ALL operations natively — no Python, no Bash, no dependencies.
inspect, list_sheets, get_sheet_info, read_rangewrite_range, append_rows, set_cell (supports formulas: value: "=SUM(A1:A10)")find_textcheck_errors, inspect_formulasformat_cells, set_column_widthcreate, add_sheetexport_csvDo NOT use Python/Bash for spreadsheet operations. The Spreadsheet tool is the single source of truth.
Spreadsheet { action: "inspect", file_path: "data.xlsx" }
Spreadsheet { action: "list_sheets", file_path: "data.xlsx" }
Spreadsheet { action: "read_range", file_path: "data.xlsx", sheet: "Summary", range: "A1:F20" }
Spreadsheet { action: "create", file_path: "output.xlsx", sheets: ["Summary", "Data", "Assumptions"] }
Spreadsheet { action: "write_range", file_path: "output.xlsx", sheet: "Summary", range: "A1", values: [["Revenue","Q1","Q2","Q3","Q4"],["Product A",100,120,130,150]] }
Spreadsheet { action: "format_cells", file_path: "output.xlsx", sheet: "Summary", range: "A1:E1", format: {"bold": true, "fill": "4472C4", "color": "FFFFFF"} }
Spreadsheet { action: "set_column_width", file_path: "output.xlsx", column: "A", width: 20 }
Spreadsheet { action: "read_range", file_path: "model.xlsx", sheet: "Input" }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Input", cell: "B5", value: "150000" }
Spreadsheet { action: "append_rows", file_path: "model.xlsx", sheet: "Data", rows: [["2026-Q1", 250, 180, 70]] }
Spreadsheet { action: "check_errors", file_path: "output.xlsx" }
Returns:
{
"status": "success",
"totalErrors": 0,
"formulaCount": 42,
"errorSummary": {}
}
Or if errors found:
{
"status": "errors_found",
"totalErrors": 3,
"formulaCount": 42,
"errorSummary": {
"#REF!": { "count": 2, "locations": ["Sheet1!B5", "Sheet1!C10"] },
"#DIV/0!": { "count": 1, "locations": ["Sheet1!D15"] }
}
}
Fix the identified errors and check again until status: "success".
Spreadsheet { action: "find_text", file_path: "report.xlsx", query: "revenue" }
Spreadsheet { action: "export_csv", file_path: "data.xlsx", sheet: "Summary" }
Spreadsheet { action: "create", file_path: "model.xlsx", sheets: ["Model"] }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Model", cell: "A1", value: "Revenue" }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Model", cell: "B1", value: "Q1" }
Spreadsheet { action: "format_cells", file_path: "model.xlsx", sheet: "Model", range: "A1:B1", format: {"bold": true} }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Model", cell: "B2", value: "100" }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Model", cell: "B3", value: "=B2*1.1" }
Spreadsheet { action: "set_cell", file_path: "model.xlsx", sheet: "Model", cell: "B4", value: "=SUM(B2:B3)" }
Spreadsheet { action: "check_errors", file_path: "model.xlsx" }
{
"bold": true,
"italic": false,
"color": "FF0000",
"fill": "FFFF00",
"numFmt": "$#,##0",
"alignment": { "horizontal": "center", "vertical": "center" }
}
// Blue inputs
Spreadsheet { action: "format_cells", file_path: "model.xlsx", range: "B5:B10", format: {"color": "0000FF"} }
// Yellow assumptions
Spreadsheet { action: "format_cells", file_path: "model.xlsx", range: "B2:B4", format: {"fill": "FFFF00"} }
// Bold headers
Spreadsheet { action: "format_cells", file_path: "model.xlsx", range: "A1:F1", format: {"bold": true, "fill": "4472C4", "color": "FFFFFF"} }
| Task | Tool |
|---|---|
| Read data | Spreadsheet { action: "read_range" } |
| Write values | Spreadsheet { action: "write_range" } or set_cell |
| Check errors | Spreadsheet { action: "check_errors" } |
| Format cells | Spreadsheet { action: "format_cells" } |
| Find text | Spreadsheet { action: "find_text" } |
| Create file | Spreadsheet { action: "create" } |
| Add sheet | Spreadsheet { action: "add_sheet" } |
| Column width | Spreadsheet { action: "set_column_width" } |
| Export CSV | Spreadsheet { action: "export_csv" } |
| See formulas | Spreadsheet { action: "inspect_formulas" } |
| Formulas | Spreadsheet { action: "set_cell", value: "=..." } |