composiohq/awesome-claude-skills/excel-automation

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Excel Automation: create workbooks, manage worksheets, read/write cell data, and format spreadsheets via Microsoft Excel and Google Sheets integration

Install

npx vskill@latest install composiohq/awesome-claude-skills/excel-automation

SKILL.md

Excel Automation

Automate spreadsheet operations including creating workbooks, writing data, formatting cells, upserting rows, and managing worksheets. Works with Microsoft Excel (OneDrive) and Google Sheets.

Toolkit docs: composio.dev/toolkits/excel


Setup

This skill requires the Rube MCP server connected at https://rube.app/mcp.

Before executing any tools, ensure an active connection exists for the excel (and optionally googlesheets) toolkit. If no connection is active, initiate one via RUBE_MANAGE_CONNECTIONS.


Core Workflows

1. Create a New Excel Workbook

Use EXCEL_CREATE_WORKBOOK to generate a new .xlsx file and upload it to OneDrive.

Tool: EXCEL_CREATE_WORKBOOK

Steps:

  1. Call EXCEL_CREATE_WORKBOOK with worksheet names and data
  2. The tool creates a .xlsx file and uploads it to OneDrive
  3. Use the returned file path/URL for subsequent operations

2. Write Data to a Spreadsheet

Use GOOGLESHEETS_BATCH_UPDATE to write values to a specific range or append rows.

Tool: GOOGLESHEETS_BATCH_UPDATE

Key Parameters:

  • spreadsheet_id (required) -- The spreadsheet ID from the URL (44-char alphanumeric string)
  • sheet_name (required) -- Tab name, e.g., "Sheet1", "Sales Data"
  • values (required) -- 2D array of cell values, e.g., [["Name","Amount"],["Alice",100]]
  • first_cell_location -- Starting cell in A1 notation (e.g., "A1", "D3"). Omit to append rows
  • valueInputOption -- "USER_ENTERED" (default, parses formulas) or "RAW" (stores as-is)

Example:

Tool: GOOGLESHEETS_BATCH_UPDATE
Arguments:
spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
sheet_name: "Sheet1"
values: [["Item","Cost","Stocked"],["Wheel",20.50,true],["Screw",0.50,true]]
first_cell_location: "A1"

3. Upsert Rows by Key Column

Use GOOGLESHEETS_UPSERT_ROWS to update existing rows by matching a key column, or append new rows if no match is found. Ideal for CRM syncs, inventory updates, and deduplication.

Tool: GOOGLESHEETS_UPSERT_ROWS

Key Parameters:

  • spreadsheetId (required) -- The spreadsheet ID
  • sheetName (required) -- Tab name
  • rows (required) -- 2D array of data rows (min 1 row). If headers is omitted, the first row is treated as headers
  • headers -- Column names for the data, e.g., ["Email","Phone","Status"]
  • keyColumn -- Column header to match on, e.g., "Email", "SKU", "Lead ID"
  • strictMode -- true (default) errors on mismatched columns; false truncates silently

Example:

Tool: GOOGLESHEETS_UPSERT_ROWS
Arguments:
spreadsheetId: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
sheetName: "Contacts"
keyColumn: "Email"
headers: ["Email","Phone","Status"]
rows: [["john@example.com","555-0101","Active"],["jane@example.com","555-0102","Pending"]]

4. Format Cells

Use GOOGLESHEETS_FORMAT_CELL to apply bold, italic, font size, and background colors to ranges.

Tool: GOOGLESHEETS_FORMAT_CELL

Key Parameters:

  • spreadsheet_id (required) -- The spreadsheet ID
  • range -- Cell range in A1 notation, e.g., "A1:D1", "B2:B10" (recommended over index-based)
  • sheet_name -- Worksheet name, e.g., "Sheet1"
  • bold -- true/false
  • italic -- true/false
  • fontSize -- Font size in points, e.g., 12
  • red, green, blue -- Background color components (0.0--1.0 float scale, NOT 0--255)

Example (bold header row with blue background):

Tool: GOOGLESHEETS_FORMAT_CELL
Arguments:
spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
range: "A1:D1"
sheet_name: "Sheet1"
bold: true
fontSize: 12
red: 0.2
green: 0.4
blue: 0.9

5. Add New Worksheet Tabs

Use GOOGLESHEETS_ADD_SHEET to create new tabs within an existing spreadsheet.

Tool: GOOGLESHEETS_ADD_SHEET

Key Parameters:

  • spreadsheetId (required) -- The spreadsheet ID
  • title -- Name for the new tab, e.g., "Q4 Report"
  • forceUnique -- true (default) auto-appends suffix if name exists

Example:

Tool: GOOGLESHEETS_ADD_SHEET
Arguments:
spreadsheetId: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
title: "Q4 Report"
forceUnique: true

6. Read Data and Verify Content

Use GOOGLESHEETS_BATCH_GET to retrieve data from specified cell ranges for validation or further processing.

Tool: GOOGLESHEETS_BATCH_GET

Steps:

  1. Call GOOGLESHEETS_BATCH_GET with the spreadsheet ID and target ranges
  2. Validate headers and data alignment
  3. Use results to inform subsequent write or update operations

Supporting Tools:

  • GOOGLESHEETS_GET_SHEET_NAMES -- List all tab names in a spreadsheet
  • GOOGLESHEETS_GET_SPREADSHEET_INFO -- Get metadata (sheet IDs, properties)
  • GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE -- Check if a specific tab exists

Recommended Execution Plan

  1. Create or locate the spreadsheet using GOOGLESHEETS_CREATE_GOOGLE_SHEET1 or reuse an existing spreadsheetId
  2. Confirm the destination tab using GOOGLESHEETS_GET_SHEET_NAMES or GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE; create it with GOOGLESHEETS_ADD_SHEET if missing
  3. Read existing headers (optional) using GOOGLESHEETS_BATCH_GET to align columns
  4. Write or upsert data using GOOGLESHEETS_BATCH_UPDATE or GOOGLESHEETS_UPSERT_ROWS
  5. Apply formatting (optional) using GOOGLESHEETS_FORMAT_CELL
  6. Verify results (optional) using GOOGLESHEETS_BATCH_GET
  7. Fallback: If Google Sheets creation is blocked (HTTP 403), use EXCEL_CREATE_WORKBOOK for local .xlsx output

Known Pitfalls

PitfallDetail
HTTP 403 on sheet creationGOOGLESHEETS_CREATE_GOOGLE_SHEET1 fails when Drive create scope is missing. Reuse an existing spreadsheetId or fall back to EXCEL_CREATE_WORKBOOK.
Cell limit and rate throttlingGoogle Sheets has a ~5,000,000 cell limit per spreadsheet. Excessive write frequency triggers HTTP 429. Batch changes and chunk large writes (~500 rows/call).
Format range off-by-oneGOOGLESHEETS_FORMAT_CELL uses 0-based, endIndex-exclusive ranges when using index mode. Background color uses 0--1 float RGB, NOT 0--255 integer RGB.
Sheet title uniquenessSheet titles are not guaranteed unique across API responses. Prefer operating by numeric sheetId and verify the resolved tab before writing.
Upsert payload shapeGOOGLESHEETS_UPSERT_ROWS requires headers + 2D rows array. Sending list-of-dicts or empty rows causes validation errors. Ensure at least 1 data row.

Quick Reference

Tool SlugDescription
EXCEL_CREATE_WORKBOOKCreate a new .xlsx workbook and upload to OneDrive
GOOGLESHEETS_BATCH_UPDATEWrite values to a range or append new rows
GOOGLESHEETS_UPSERT_ROWSUpdate existing rows by key or append new ones
GOOGLESHEETS_FORMAT_CELLApply text/background formatting to cell ranges
GOOGLESHEETS_ADD_SHEETAdd a new worksheet tab to a spreadsheet
GOOGLESHEETS_CREATE_GOOGLE_SHEET1Create a new Google Spreadsheet in Drive
GOOGLESHEETS_GET_SHEET_NAMESList all worksheet names in a spreadsheet
GOOGLESHEETS_GET_SPREADSHEET_INFORetrieve spreadsheet metadata
GOOGLESHEETS_FIND_WORKSHEET_BY_TITLECheck if a worksheet exists by title
GOOGLESHEETS_BATCH_GETRead data from specified cell ranges

Powered by [Composio](https://composio.dev)

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
71,597
Repository forks
8,066
7-day trend score
56

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 21 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/composiohq/awesome-claude-skills/excel-automation/badge)](https://verified-skill.com/skills/composiohq/awesome-claude-skills/excel-automation)

Something wrong with this skill or its page? Tell us.