# XLSX Toolkit

> Create, read, and edit Excel (.xlsx) spreadsheets — write and read cells, add multiple sheets, formulas, number/date formatting, styling, and charts. Built on the MIT-licensed openpyxl library. Use this skill whenever the user wants to generate a spreadsheet, edit an existing .xlsx, read data or formulas out of a workbook, add formulas or charts, or produce tabular output as an Excel file. For converting a workbook to Markdown or handling batches of mixed file types, use markitdown-converter instead.

- Skill: `l3ad3r1/xlsx-toolkit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add l3ad3r1/xlsx-toolkit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/l3ad3r1/xlsx-toolkit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: l3ad3r1 (https://skillmd.com/u/l3ad3r1)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/l3ad3r1/xlsx-toolkit

---


# XLSX Toolkit

Create and edit Excel workbooks with [`openpyxl`](https://foss.heptapod.net/openpyxl/openpyxl)
(MIT licensed).

## When to Use

- Generate an `.xlsx` workbook from data.
- Edit an existing spreadsheet (cells, sheets, formulas, formatting).
- Read values or formulas out of a workbook.
- Add charts or styled/number-formatted cells.

> To convert a spreadsheet *to Markdown* for analysis, use
> `markitdown-converter`. Use this skill to author or edit `.xlsx` files.

## Setup

```bash
pip install openpyxl
```

## Create a workbook

```python
from openpyxl import Workbook
from openpyxl.styles import Font
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active
ws.title = "Sales"
ws.append(["Product", "Q1", "Q2"])
for cell in ws[1]:
    cell.font = Font(bold=True)
rows = [("Email Course", 19, 34), ("Workflow Kit", 40, 53)]
for r in rows:
    ws.append(r)
ws["D1"] = "Growth"
ws["D2"] = "=C2-B2"          # formula
ws["D3"] = "=C3-B3"
ws.column_dimensions["A"].width = 18

# a second sheet
ws2 = wb.create_sheet("Notes")
ws2["A1"] = "Generated by xlsx-toolkit"

# a chart
chart = BarChart()
data = Reference(ws, min_col=2, max_col=3, min_row=1, max_row=3)
cats = Reference(ws, min_col=1, min_row=2, max_row=3)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
ws.add_chart(chart, "F2")

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

## Read

```python
from openpyxl import load_workbook
wb = load_workbook("sales.xlsx", data_only=True)   # data_only -> last-computed values
ws = wb["Sales"]
for row in ws.iter_rows(values_only=True):
    print(row)
```

## Notes & Limits

- `data_only=True` returns cached values; without it you read the formula text.
  openpyxl does **not** evaluate formulas itself — open the file in Excel/
  LibreOffice to recalculate.
- Very large workbooks: use `read_only=True` / `write_only=True` modes.

## Credits

Original skill by Rinu (l3ad3r1) in collaboration with Claude (Anthropic).
Powered by [openpyxl](https://foss.heptapod.net/openpyxl/openpyxl) (MIT) — all
credit for the underlying capability belongs to its authors.

