Spreadsheet Functionalities Available Through Claude Skills: A Complete Technical Guide
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 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, 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 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 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:
- Create or locate a spreadsheet using
GOOGLESHEETS_CREATE_GOOGLE_SHEET1or reuse an existingspreadsheetId. - Ensure the target tab exists by calling
GOOGLESHEETS_GET_SHEET_NAMESfollowed byGOOGLESHEETS_ADD_SHEETif necessary. - Read existing data when validation is required using
GOOGLESHEETS_BATCH_GET. - Write or upsert rows via
GOOGLESHEETS_BATCH_UPDATEorGOOGLESHEETS_UPSERT_ROWS. - Apply formatting using
GOOGLESHEETS_FORMAT_CELLwith proper 0-based end-index-exclusive ranges. - Verify outcomes with
GOOGLESHEETS_BATCH_GETto 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:
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 script to evaluate formulas and surface errors:
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.
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
{
"tool": "GOOGLESHEETS_CREATE_GOOGLE_SHEET1",
"arguments": {
"title": "Quarterly Report",
"folders": ["MyDrive/Reports"]
}
}
{
"tool": "GOOGLESHEETS_ADD_SHEET",
"arguments": {
"spreadsheetId": "<returned-id>",
"title": "Q1-2024",
"forceUnique": true
}
}
Writing Header and Data Rows
{
"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
{
"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):
{
"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_WORKBOOKwhen 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_CELLuses 0-based end-index-exclusive ranges. - Payload validation:
rowsin upsert operations must be non-empty 2-D arrays matching theheadersstructure.
Summary
- Claude Skills provides comprehensive spreadsheet functionalities available through modular
SKILL.mdfiles in the ComposioHQ/awesome-claude-skills repository. - Google Sheets operations use tool slugs like
GOOGLESHEETS_BATCH_UPDATE,GOOGLESHEETS_UPSERT_ROWS, andGOOGLESHEETS_FORMAT_CELLvia the Rube MCP server. - Local Excel files require
openpyxlfor manipulation andrecalc.pyfor 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 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 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.
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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →