---
name: google-sheets
description: Automate Google Sheets interactions through browser automation - create spreadsheets, enter data, apply formulas, and format cells.
command: /google-sheets
verified: true
---
# Google Sheets Interaction Skill
## Overview
This skill provides patterns and best practices for automating Google Sheets interactions through browser automation. Google Sheets is a **canvas-based web app** — standard DOM element references are often unreliable; prefer keyboard shortcuts and coordinate clicks.
---
## Agent Workflow (Always Follow This Order)
1. **Orient** — Take a screenshot. Confirm you're on the right tab/sheet. Identify existing data range.
2. **Plan** — Decide what cells to read or write, in what order.
3. **Execute in small steps** — One logical action at a time (one row, one format operation, etc.).
4. **Verify** — Take a screenshot after each meaningful action to confirm the result before continuing.
5. **Recover if needed** — If something looks wrong, `Cmd+Z` immediately before doing anything else.
---
## 1. Session Setup / Opening a Sheet
**Starting from scratch:**
- Navigate to `https://sheets.google.com`
- Click "Blank spreadsheet" to create new, or click an existing file
- After clicking, **wait for the new tab** — Sheets often opens in a new tab. Switch to it before proceeding.
**Opening an existing file:**
- Navigate to `https://drive.google.com`, search for the file, and open it
- Or navigate directly via a known URL
**Before acting on any sheet:**
- Take a screenshot to confirm the sheet is loaded (look for the grid and toolbar)
- Confirm which **sheet tab** is active (bottom of screen)
- Use `Cmd+Home` to go to A1 and orient yourself
---
## 2. Reading / Understanding Existing Data
Before writing anything, read what's already there:
- **Screenshot first** — Get a visual overview of the data layout
- **`browser_get_text`** — Extracts cell text content; useful for reading values without clicking
- **`Cmd+End`** — Jumps to the last cell with data; tells you the extent of the dataset
- **`Cmd+Home`** — Returns to A1
**To read a specific cell's value:** Click the cell and read the formula bar (visible in screenshot), or use `browser_get_text` and parse the result.
---
## 3. Navigation & Cell Selection
**DO NOT type cell references into the Name Box** — it often enters text into cells instead of navigating.
**Preferred navigation methods:**
| Goal | Method |
|------|--------|
| Go to A1 | `Cmd+Home` |
| Go to start of row | `Home` |
| Go to last data cell | `Cmd+End` |
| Move right | `Tab` |
| Move down | `Enter` |
| Move by one cell | Arrow keys |
| Select entire row | Click the row number on the left (e.g., "2") |
| Select entire column | Click the column letter at top (e.g., "A") |
| Select a range | Click start cell, then `Shift+click` end cell |
| Select column range (for resize) | Click first column letter, `Shift+click` last |
**Confirming current cell location:**
- Take a screenshot and look at the **Name Box** (top-left, shows current cell address like "A1")
- Look at the **formula bar** (top center) which shows the selected cell's content
- The selected cell has a blue/green border — visible in screenshots
---
## 4. Data Entry
### Basic pattern for tabular data:
```
1. Click on the starting cell (e.g., A1)
2. Type value → Tab (moves right)
3. Type value → Tab → Tab → ...
4. At end of row: press Enter (moves to next row, returns to column where you started)
5. Press Home to ensure you're at column A
6. Repeat
```
### Entering a single value:
```
1. Click the target cell
2. Type the value
3. Press Enter or Tab to confirm (don't leave it unconfirmed)
```
### Pasting multi-line data:
- Prepare data as tab-separated text (TSV)
- Click the target starting cell
- Paste with `Cmd+V`
- Verify result with a screenshot
**Avoid:**
- Typing tab characters inside a string to separate columns — they won't work as cell separators
- Leaving a cell in edit mode (blinking cursor) before navigating away — always confirm with Enter or Tab
---
## 5. Formulas
### Entering a formula:
```
1. Click target cell
2. Type = followed by the formula (e.g., =SUM(A1:A10))
3. Press Enter to confirm
```
### Common formulas:
| Formula | Purpose |
| --------------------------- | --------------------- |
| `=SUM(A1:A10)` | Sum a range |
| `=AVERAGE(B2:B20)` | Average |
| `=COUNT(C2:C100)` | Count non-empty cells |
| `=IF(A1>10,"Yes","No")` | Conditional |
| `=VLOOKUP(key,range,col,0)` | Lookup |
| `=A1&" "&B1` | Concatenate cells |
| `=TODAY()` | Today's date |
### Copying a formula down a column:
```
1. Click the cell with the formula
2. Press Cmd+C to copy
3. Select the range below (click first cell, Shift+click last)
4. Press Cmd+V to paste
```
Or: click the cell, then double-click the small blue square in the cell's bottom-right corner (auto-fill handle) — this fills down to match adjacent data.
---
## 6. Formatting
### Bold / Italic / Underline:
```
1. Select cell(s) or row (click row number)
2. Cmd+B (bold), Cmd+I (italic), Cmd+U (underline)
```
### Header row formatting (recommended pattern):
```
1. Click the row number to select the entire row
2. Cmd+B for bold
3. Click the Fill Color button (paint bucket in toolbar) → choose a color
4. View > Freeze > 1 row (so header stays visible when scrolling)
```
### Number formatting:
```
Format > Number > choose format (Currency, Percent, Date, etc.)
```
### Text wrapping:
```
Format > Wrapping > Wrap (or Overflow / Clip)
```
### Column width auto-fit:
```
1. Click first column letter, Shift+click last column letter to select range
2. Right-click on any selected column header
3. "Resize columns A - X"
4. Choose "Fit to data" → OK
```
---
## 7. Sheet Tabs (Multiple Sheets)
Sheet tabs appear at the **bottom** of the screen.
| Action | Method |
| ----------------- | ------------------------------------------ |
| Switch to a sheet | Click its tab at the bottom |
| Add a new sheet | Click the **+** button at the bottom left |
| Rename a sheet | Double-click the tab, type new name, Enter |
| Duplicate a sheet | Right-click the tab → "Duplicate" |
| Delete a sheet | Right-click the tab → "Delete" |
**Always confirm which sheet tab is active before reading or writing data.**
---
## 8. Menus Reference
| Menu | Useful For |
| ---------------------------- | ---------------------- |
| View > Freeze | Freeze rows/columns |
| Format > Number | Number/date formatting |
| Format > Wrapping | Text wrap in cells |
| Data > Sort range | Sort by column |
| Data > Filter | Add filter dropdowns |
| Data > Split text to columns | Split delimited text |
| Insert > Row / Column | Insert rows or columns |
---
## 9. Common Keyboard Shortcuts
| Action | Shortcut |
| -------------------- | ---------------------------------------- |
| Bold | `Cmd+B` |
| Italic | `Cmd+I` |
| Undo | `Cmd+Z` |
| Redo | `Cmd+Shift+Z` |
| Select All | `Cmd+A` |
| Copy | `Cmd+C` |
| Paste | `Cmd+V` |
| Go to A1 | `Cmd+Home` |
| Go to last data cell | `Cmd+End` |
| Go to start of row | `Home` |
| Move right | `Tab` |
| Move down | `Enter` |
| Delete cell contents | `Delete` |
| Find & Replace | `Cmd+H` |
| Insert row above | `Cmd+Option+Shift+=` (with row selected) |
---
## 10. Error Recovery
**Something went wrong — act immediately:**
1. `Cmd+Z` — Undo the last action (do this before anything else)
2. Take a screenshot to assess current state
3. Re-orient: `Cmd+Home` to go to A1
4. Re-read the data before retrying
**Common problems and fixes:**
| Problem | Fix |
|---------|-----|
| Text entered into wrong cell | `Cmd+Z`, then navigate correctly and re-enter |
| Formula shows as text (starts with `=` but not computing) | Click cell, press F2 to edit, confirm cell is not formatted as plain text |
| Dialog appeared unexpectedly | Screenshot to read it, then press `Escape` or respond appropriately |
| Sheet opened in new browser tab | Use `browser_tabs` / tabs tool to switch to the new tab |
| Cell stuck in edit mode | Press `Escape` to cancel edit, or `Enter` to confirm |
---
## 11. Saving
Google Sheets **auto-saves continuously**. You do not need to manually save.
- Watch for "Saving..." → "All changes saved" in the top bar to confirm
- If you see a "Save" prompt, the file may be a non-Google format (e.g., .xlsx) — click Save to keep changes
---
## 12. Browser Automation Tips
- **Google Sheets is a canvas app** — DOM element references (`ref_id`) often don't work for cells. Use coordinate clicks instead.
- **Always screenshot before and after** significant actions
- **Use keyboard shortcuts** over toolbar button clicks whenever possible — more reliable
- **Toolbar buttons** can be clicked by coordinate if needed; take a screenshot to locate them first
- **Name Box** (top-left showing cell address): Read it in screenshots to confirm position, but don't type into it for navigation
- **After creating a new sheet**, wait for the new browser tab to open, then switch to it before interacting