---
name: Excel Spreadsheet Processing
slug: excel-spreadsheet-processing
category: Automation
description: Excel Spreadsheet Processing reads, writes, and edits .xlsx files for spreadsheet tasks like formulas, cell changes, filtering, charts, and pivot tables. Use it when working with Excel data or automating workbook updates.
github: "https://github.com/mindscale-noah/MindMemOS/tree/main/resources/skill_evolve/spreadsheetbench_init_skill/xlsx"
language: Python
stars: 944
forks: 91
install: "npx degit https://github.com/mindscale-noah/MindMemOS/tree/main/resources/skill_evolve/spreadsheetbench_init_skill/xlsx ~/.claude/skills/xlsx"
installs_to: ~/.claude/skills/xlsx
source_path: resources/skill_evolve/spreadsheetbench_init_skill/xlsx/SKILL.md
collection_size: 2
category_size: 1523
collection_url: "https://dirskills.com/collections/mindscale-noah/MindMemOS"
added: 2026-08-21T05:15:34.417Z
last_synced: 2026-08-21T05:15:34.417Z
canonical_url: "https://dirskills.com/skills/excel-spreadsheet-processing"
---

# Excel Spreadsheet Processing

Excel Spreadsheet Processing reads, writes, and edits .xlsx files for spreadsheet tasks like formulas, cell changes, filtering, charts, and pivot tables. Use it when working with Excel data or automating workbook updates.

**Install:**

```bash
npx degit https://github.com/mindscale-noah/MindMemOS/tree/main/resources/skill_evolve/spreadsheetbench_init_skill/xlsx ~/.claude/skills/xlsx
```

## README

# Excel Spreadsheet Processing

Use `openpyxl` to read and write .xlsx files.

## Quick Start

```python
from openpyxl import load_workbook

wb = load_workbook("input.xlsx")
ws = wb["Sheet1"]

value = ws["A1"].value
ws["B2"] = 42
ws["C2"] = "=SUM(A2:B2)"

wb.save("output.xlsx")
```

Use this for direct cell edits, formula updates, and simple workbook changes.

## Reading Data with pandas

```python
import pandas as pd

df = pd.read_excel('file.xlsx')                          # First sheet
all_sheets = pd.read_excel('file.xlsx', sheet_name=None) # All sheets as dict
```

## Common Pitfalls

- **Cell indices are 1-based**: `ws.cell(row=1, column=1)` is A1.
- **`data_only=True` destroys formulas on save**: Use a separate workbook object for reading calculated values.
- **`ws.max_row` overcounts**: May include formatted-but-empty rows. Scan the column to find the last non-empty cell when you need the true data range.
