# Spreadsheet Functionalities Available Through Claude Skills: A Complete Technical Guide

> Discover Claude Skills spreadsheet functionalities for Excel and Google Sheets. Learn how Claude can create, read, modify, and format spreadsheets using modular skills. Enhance your data management.

- Repository: [Composio/awesome-claude-skills](https://github.com/composiohq/awesome-claude-skills)
- Tags: technical-guide
- Published: 2026-07-28

---

**Claude Skills exposes a robust suite of spreadsheet capabilities that enable Claude to create, read, modify, and format spreadsheets in both Microsoft Excel (OneDrive) and Google Sheets through modular skill modules defined by SKILL.md files.**

The **ComposioHQ/awesome-claude-skills** repository implements these spreadsheet functionalities available through Claude Skills as discrete automation modules that interface with cloud-based APIs and local file formats. Each skill declares its required toolkits, concrete tool slugs, and execution patterns in dedicated markdown files that Claude uses to orchestrate complex workbook operations.

## Architecture and Core Skill Modules

The spreadsheet automation architecture relies on **skill modules**, each defined by a [`SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/SKILL.md) file that describes high-level capabilities, required MCP servers, and specific tool slugs Claude can invoke.

### Excel Automation Skill

Located at [`composio-skills/excel-automation/SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/composio-skills/excel-automation/SKILL.md), this core module orchestrates workbook-level actions for both **Microsoft Excel** and **Google Sheets**. It declares the required MCP (`rube`) and enumerates all available tool slugs ranging from `EXCEL_CREATE_WORKBOOK` for OneDrive creation to `GOOGLESHEETS_BATCH_UPDATE` for cloud-based data manipulation.

### XLSX Document Skill

The [`document-skills/xlsx/SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/document-skills/xlsx/SKILL.md) file provides best-practice guidelines for creating, editing, and analyzing `.xlsx`, `.xlsm`, `.csv`, and `.tsv` files. This skill mandates specific Python libraries—**`pandas`** for data manipulation and **`openpyxl`** for formulas and formatting—along with the required [`recalc.py`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/recalc.py) script for formula evaluation to ensure zero-formula-error outputs.

## Core Spreadsheet Tool Slugs

The following tool slugs constitute the primary spreadsheet functionalities available through Claude Skills:

| Tool Slug | Platform | Primary Action | Key Parameters |
|-----------|----------|----------------|----------------|
| `EXCEL_CREATE_WORKBOOK` | Microsoft Excel/OneDrive | Create fresh `.xlsx` workbook and upload | `worksheet_names`, `initial_data` |
| `GOOGLESHEETS_BATCH_UPDATE` | Google Sheets | Write or append values to ranges | `spreadsheet_id`, `sheet_name`, `values`, `first_cell_location`, `valueInputOption` |
| `GOOGLESHEETS_UPSERT_ROWS` | Google Sheets | Update rows by key column or append new rows | `spreadsheetId`, `sheetName`, `rows`, `headers`, `keyColumn`, `strictMode` |
| `GOOGLESHEETS_FORMAT_CELL` | Google Sheets | Apply bold/italic/font-size/background color | `spreadsheet_id`, `range`, `sheet_name`, style flags |
| `GOOGLESHEETS_ADD_SHEET` | Google Sheets | Add new worksheet tab | `spreadsheetId`, `title`, `forceUnique` |
| `GOOGLESHEETS_BATCH_GET` | Google Sheets | Retrieve cell values | `spreadsheet_id`, `ranges` |
| `GOOGLESHEETS_GET_SHEET_NAMES` | Google Sheets | List all worksheet names | `spreadsheet_id` |
| `GOOGLESHEETS_GET_SPREADSHEET_INFO` | Google Sheets | Pull metadata and sheet IDs | `spreadsheet_id` |

## Execution Workflow for Spreadsheet Tasks

A typical spreadsheet task follows this six-step execution flow as implemented in the ComposioHQ/awesome-claude-skills source code:

1. **Create or locate** a spreadsheet using `GOOGLESHEETS_CREATE_GOOGLE_SHEET1` or reuse an existing `spreadsheetId`.
2. **Ensure the target tab** exists by calling `GOOGLESHEETS_GET_SHEET_NAMES` followed by `GOOGLESHEETS_ADD_SHEET` if necessary.
3. **Read existing data** when validation is required using `GOOGLESHEETS_BATCH_GET`.
4. **Write or upsert** rows via `GOOGLESHEETS_BATCH_UPDATE` or `GOOGLESHEETS_UPSERT_ROWS`.
5. **Apply formatting** using `GOOGLESHEETS_FORMAT_CELL` with proper 0-based end-index-exclusive ranges.
6. **Verify outcomes** with `GOOGLESHEETS_BATCH_GET` to confirm successful operations.

## Local Excel File Operations

For local `.xlsx` manipulation, the XLSX document skill specifies a Python-based workflow that differs from the Google Sheets API approach.

### Creating Workbooks with openpyxl

Use `openpyxl` to manipulate workbooks locally, embedding formulas as strings within cells:

```python
from openpyxl import Workbook
from openpyxl.styles import Font

wb = Workbook()
ws = wb.active
ws.title = "Summary"

# Header with bold formatting

ws.append(["Month", "Revenue", "Cumulative"])
for cell in ws[1]:
    cell.font = Font(bold=True)

# Data rows with formulas

ws.append(["Jan", 120000, "=SUM(B2)"])
ws.append(["Feb", 95000, "=C2+B3"])

wb.save("quarterly.xlsx")

```

### Mandatory Formula Recalculation

After saving local Excel files, execute the mandatory [`recalc.py`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/recalc.py) script to evaluate formulas and surface errors:

```bash
python recalc.py quarterly.xlsx

```

This step returns a JSON report confirming **zero formula errors** (catching `#REF!` or `#DIV/0!` before delivery), as required by the quality gates in [`document-skills/xlsx/SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/document-skills/xlsx/SKILL.md).

## Practical Code Examples

The following JSON snippets demonstrate common spreadsheet functionalities available through Claude Skills when interacting with Google Sheets.

### Creating a New Sheet and Adding Tabs

```json
{
  "tool": "GOOGLESHEETS_CREATE_GOOGLE_SHEET1",
  "arguments": {
    "title": "Quarterly Report",
    "folders": ["MyDrive/Reports"]
  }
}

```

```json
{
  "tool": "GOOGLESHEETS_ADD_SHEET",
  "arguments": {
    "spreadsheetId": "<returned-id>",
    "title": "Q1-2024",
    "forceUnique": true
  }
}

```

### Writing Header and Data Rows

```json
{
  "tool": "GOOGLESHEETS_BATCH_UPDATE",
  "arguments": {
    "spreadsheet_id": "<id>",
    "sheet_name": "Q1-2024",
    "values": [
      ["Date", "Revenue", "Units Sold"],
      ["2024-01-01", 125000, 340],
      ["2024-01-02", 98000, 210]
    ],
    "first_cell_location": "A1",
    "valueInputOption": "USER_ENTERED"
  }
}

```

### Upserting Rows by Key Column

```json
{
  "tool": "GOOGLESHEETS_UPSERT_ROWS",
  "arguments": {
    "spreadsheetId": "<id>",
    "sheetName": "Inventory",
    "keyColumn": "ProductID",
    "headers": ["ProductID", "Name", "Stock", "Price"],
    "rows": [
      ["P-001", "Widget", 150, 12.99],
      ["P-002", "Gadget", 85, 23.45]
    ],
    "strictMode": true
  }
}

```

### Applying Cell Formatting

When using `GOOGLESHEETS_FORMAT_CELL`, note that color components must be floats (0-1), not integers (0-255):

```json
{
  "tool": "GOOGLESHEETS_FORMAT_CELL",
  "arguments": {
    "spreadsheet_id": "<id>",
    "range": "A1:C1",
    "sheet_name": "Q1-2024",
    "bold": true,
    "fontSize": 12,
    "red": 0.2,
    "green": 0.4,
    "blue": 0.9
  }
}

```

## Error Handling and Constraints

The ComposioHQ/awesome-claude-skills repository documents specific constraints enforced by the underlying Rube MCP server:

- **HTTP 403 on sheet creation**: Fall back to `EXCEL_CREATE_WORKBOOK` when Google Sheets permissions fail.
- **Cell-limit throttling**: Batch writes to ≤500 rows per call to avoid 429 rate-limit errors.
- **Range indexing**: Google Sheets `GOOGLESHEETS_FORMAT_CELL` uses 0-based end-index-exclusive ranges.
- **Payload validation**: `rows` in upsert operations must be non-empty 2-D arrays matching the `headers` structure.

## Summary

- **Claude Skills** provides comprehensive spreadsheet functionalities available through modular [`SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/SKILL.md) files in the ComposioHQ/awesome-claude-skills repository.
- **Google Sheets operations** use tool slugs like `GOOGLESHEETS_BATCH_UPDATE`, `GOOGLESHEETS_UPSERT_ROWS`, and `GOOGLESHEETS_FORMAT_CELL` via the Rube MCP server.
- **Local Excel files** require `openpyxl` for manipulation and [`recalc.py`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/recalc.py) for mandatory formula verification to ensure zero errors.
- **Execution workflows** follow a six-step pattern from creation/formatting to verification.
- **Color formatting** in Google Sheets uses float values (0-1) and 0-based indexing, not integer RGB values.

## Frequently Asked Questions

### How do Claude Skills handle formula errors in local Excel files?

Claude Skills mandates running [`recalc.py`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/recalc.py) on all locally created `.xlsx` files to evaluate formulas and detect errors like `#REF!` or `#DIV/0!` before delivery. This requirement is enforced by the quality gates in [`document-skills/xlsx/SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/document-skills/xlsx/SKILL.md) and ensures spreadsheet recipients receive files with zero formula errors.

### What is the difference between GOOGLESHEETS_BATCH_UPDATE and GOOGLESHEETS_UPSERT_ROWS?

`GOOGLESHEETS_BATCH_UPDATE` writes or appends values directly to specified ranges without checking for existing keys, while `GOOGLESHEETS_UPSERT_ROWS` performs intelligent updates by matching rows against a specified `keyColumn`—updating existing records or appending new ones based on whether the key exists. The upsert tool requires `strictMode` and `headers` parameters that must align with the 2-D `rows` array structure.

### Can Claude Skills create spreadsheets in both Google Sheets and Microsoft Excel?

Yes. The **Excel Automation skill** supports both platforms through platform-specific tool slugs. Use `EXCEL_CREATE_WORKBOOK` for Microsoft Excel/OneDrive creation and `GOOGLESHEETS_CREATE_GOOGLE_SHEET1` for Google Sheets. Both platforms support subsequent operations like batch updates and formatting through their respective API tool sets defined in [`composio-skills/excel-automation/SKILL.md`](https://github.com/ComposioHQ/awesome-claude-skills/blob/main/composio-skills/excel-automation/SKILL.md).

### What are the color value requirements for cell formatting in Google Sheets?

When using `GOOGLESHEETS_FORMAT_CELL`, color components (`red`, `green`, `blue`) must be specified as **float values between 0 and 1**, not integers between 0 and 255. Additionally, the range parameter uses **0-based end-index-exclusive** indexing, meaning a range covering cells A1 through C1 would be specified as `"A1:C1"` with the understanding that the end index is exclusive in the underlying API call.