Excel Skill
Use this skill when asked to create, edit, or read Excel files, apply formulas, or work with multi-sheet workbooks.
---name: excel-skilldescription: Create, read, and modify Excel (.xlsx) spreadsheets with companyFILES MCP tools. Use when asked to create a spreadsheet, export data to Excel, read or parse an Excel file, edit cells, add sheets, apply formulas, conditional formatting, or auto-filters. Covers CSV-to-Excel, JSON-to-Excel, 2D array input, advanced multi-sheet workbooks, and in-place modification.---
# Excel Skill
Tools for creating, reading, and modifying Excel (.xlsx) spreadsheets via companyFILES.
## Tools in This Skill
| Tool | Purpose ||------|---------|| `create_excel_from_csv` | Create Excel from CSV text || `create_excel` | Create Excel from a 2D array || `create_excel_from_json` | Create Excel from JSON (array of objects) || `create_excel_advanced` | Create multi-sheet workbooks with formulas, validation, conditional formatting || `modify_excel` | Edit an existing Excel file in-place by document ID || `read_excel` | Read Excel to JSON (values only) || `read_excel_detailed` | Read Excel with formulas, comments, hyperlinks, named ranges, and metadata |
## Decision Guide
```User wants to create Excel from... CSV text → create_excel_from_csv JSON array → create_excel_from_json 2D array / table → create_excel Complex workbook → create_excel_advanced (formulas, multiple sheets, formatting)
User wants to edit an existing Excel file → modify_excel (requires document_id)
User wants to read / parse Excel content... Just values → read_excel Formulas & metadata → read_excel_detailed```
## Tool Usage
### create_excel_from_csv```json{ "csv_content": "Name,Age\nAlice,30\nBob,25", "filename": "people", "sheet_name": "Sheet1", "folder": "reports"}```
### create_excel```json{ "data": [["Name","Age"],["Alice","30"],["Bob","25"]], "has_headers": true, "filename": "people", "folder": "reports"}```
### create_excel_from_json```json{ "json_content": "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]", "filename": "people"}```
### create_excel_advanced```json{ "sheets": [{ "name": "Sales", "data": [ ["Product","Q1","Q2","Total"], ["Widget A",100,150,{"formula":"SUM(B2:C2)"}], ["Widget B",200,180,{"formula":"SUM(B3:C3)"}] ], "has_headers": true, "auto_filter": true, "conditional_formatting": [{ "range": "B2:C3", "type": "greaterThan", "values": [150], "style": {"backgroundColor":"00FF00"} }] }], "filename": "sales_report"}```
**Formula syntax:** Use `{"formula": "SUM(A1:A10)"}` object — no leading `=`.
**Conditional formatting types:** `greaterThan`, `lessThan`, `equal`, `between`, `containsText`, `duplicateValues`
### modify_excel
Modifies an existing Excel file **in-place** — same document ID, content replaced.
```json{ "document_id": "<id from upload_file or any create_excel* call>", "set_cells": { "A1": "Updated Title", "Sheet2!B5": {"formula": "SUM(B2:B4)"} }, "append_rows": { "Sheet1": [["New Row", 100, 200]] }, "number_formats": {"B2:B100": "#,##0.00"}, "auto_filter": {"Sheet1": true}, "add_sheets": [{"name": "Summary", "data": [["Total",500]], "has_headers": false}], "delete_sheets": ["OldSheet"], "rename_sheets": {"OldName": "NewName"}}```
### read_excel```json{ "file_content": "<base64-encoded xlsx>", "include_headers": true, "sheet_name": "Sheet1"}```Alternatively pass `librechat_file_id` instead of `file_content`.
### read_excel_detailed```json{ "file_content": "<base64-encoded xlsx>", "include_headers": true}```Returns values, formulas, comments, validation rules, hyperlinks, named ranges, merged cells, and workbook properties.
## Key Notes
- All create tools return `{id, filename, downloadUrl, markdownLink}` — always render `markdownLink` in the reply.- `modify_excel` requires a `document_id` pointing to an `.xlsx` file; it errors if the doc type is not Excel.- Cell addresses support sheet prefix: `"Sheet2!B3"`.- The org/user color theme is automatically applied when configured in settings.- To fill a template with `{{placeholder}}` syntax, use `fill_excel_template` from the **templates-skill** instead.