XLSX Toolkit
Create and edit Excel workbooks with openpyxl
(MIT licensed).
When to Use
- Generate an
.xlsxworkbook 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.xlsxfiles.
Setup
pip install openpyxl
Create a workbook
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
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=Truereturns 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=Truemodes.
Credits
Original skill by Rinu (l3ad3r1) in collaboration with Claude (Anthropic). Powered by openpyxl (MIT) — all credit for the underlying capability belongs to its authors.