excel-operator

Generate and parse Excel XLSX files with styling, charts, formulas, and streaming.

3|1|Updated Feb 14, 2026
One-click install
npx skills add https://github.com/LiboMa/agenticops-chat --skill excel-operator-liboma
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: excel-operator
Source: https://github.com/LiboMa/agenticops-chat/tree/main/skills/excel-operator
Command: npx skills add https://github.com/LiboMa/agenticops-chat --skill excel-operator-liboma

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires openpyxl, pandas, xlsxwriter.

What problem does it solve? Reading a spreadsheet is easy, but producing polished Excel reports (styled headers, charts, formulas, conditional formatting) or programmatically parsing specific ranges, merged cells, and huge files requires library-specific knowledge that is easy to get wrong. ## Core Features & Use Cases - Workbook Generation: Create styled, multi-sheet XLSX reports with formulas, frozen panes, conditional formatting, and embedded bar/line/pie charts using openpyxl, pandas, or xlsxwriter. - Programmatic Parsing: Extract specific sheets and cell ranges into typed records, back-fill merged cells, distinguish formulas from cached values, and stream 100k+ row files with bounded memory. - Use Case: Export an EC2 inventory with cost columns formatted as currency, add a severity color scale to a health-issue summary, or parse a customer-provided capacity plan with merged header cells into JSON records. ## Quick Start Generate a styled multi-sheet Excel cost report from my AWS usage data with a bar chart of cost by service.

Frequently Asked Questions about excel-operator

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Excel file with formatting in Python?▼

Use openpyxl to build a workbook, apply Font, PatternFill, and Border objects to header cells, set number_format on data columns, then call wb.save(). For DataFrame-based exports, use pd.ExcelWriter with the xlsxwriter engine to apply per-column formats in one pass.

openpyxl vs xlsxwriter vs pandas for Excel files?▼

openpyxl is the only option that reads and edits existing files in place. xlsxwriter is write-only but fastest with the richest chart API and constant_memory mode. pandas delegates to either engine and fits when the unit of work is a table rather than individual cells.

How do I read large Excel files without running out of memory?▼

Load with openpyxl using read_only=True and iterate rows with iter_rows(values_only=True), then call wb.close() to release the file handle. pandas.read_excel has no chunksize, so for batching use skiprows and nrows or convert to CSV first.

Why do formula cells read as None with openpyxl data_only?▼

data_only=True returns the value cached by Excel at last save; files created programmatically and never opened in Excel have no cache, so cells read as None. Read with data_only=False to get the formula strings, or convert once with LibreOffice to populate the cache.

How do I handle merged cells when parsing Excel?▼

Only the top-left cell of a merged range holds the value; the rest read as None. Iterate ws.merged_cells.ranges, capture the top-left value, unmerge each range, and back-fill every cell in the range before converting to records.

Why does openpyxl fail with BadZipFile on my xlsx file?▼

The file is not a real XLSX: it may be a legacy .xls binary, a CSV or HTML file renamed to .xlsx, or a truncated download. Check the first bytes with head -c 8; PK means real xlsx, while legacy .xls files need the xlrd engine.