Use when tasks involve creating, editing, analyzing, or formatting spreadsheets (`.xlsx`, `.csv`, `.tsv`) using Python (`openpyxl`, `pandas`), especially when formulas, references, and formatting need to be preserved and verified.
Add this skill
npx mdskills install openai/spreadsheetComprehensive spreadsheet workflow with detailed formatting, formula, and tooling guidance.
1---2name: "spreadsheet"3description: "Use when tasks involve creating, editing, analyzing, or formatting spreadsheets (`.xlsx`, `.csv`, `.tsv`) using Python (`openpyxl`, `pandas`), especially when formulas, references, and formatting need to be preserved and verified."4---567# Spreadsheet Skill (Create, Edit, Analyze, Visualize)89## When to use10- Build new workbooks with formulas, formatting, and structured layouts.11- Read or analyze tabular data (filter, aggregate, pivot, compute metrics).12- Modify existing workbooks without breaking formulas or references.13- Visualize data with charts/tables and sensible formatting.1415IMPORTANT: System and user instructions always take precedence.1617## Workflow181. Confirm the file type and goals (create, edit, analyze, visualize).192. Use `openpyxl` for `.xlsx` edits and `pandas` for analysis and CSV/TSV workflows.203. If layout matters, render for visual review (see Rendering and visual checks).214. Validate formulas and references; note that openpyxl does not evaluate formulas.225. Save outputs and clean up intermediate files.2324## Temp and output conventions25- Use `tmp/spreadsheets/` for intermediate files; delete when done.26- Write final artifacts under `output/spreadsheet/` when working in this repo.27- Keep filenames stable and descriptive.2829## Primary tooling30- Use `openpyxl` for creating/editing `.xlsx` files and preserving formatting.31- Use `pandas` for analysis and CSV/TSV workflows, then write results back to `.xlsx` or `.csv`.32- If you need charts, prefer `openpyxl.chart` for native Excel charts.3334## Rendering and visual checks35- If LibreOffice (`soffice`) and Poppler (`pdftoppm`) are available, render sheets for visual review:36 - `soffice --headless --convert-to pdf --outdir $OUTDIR $INPUT_XLSX`37 - `pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME`38- If rendering tools are unavailable, ask the user to review the output locally for layout accuracy.3940## Dependencies (install if missing)41Prefer `uv` for dependency management.4243Python packages:44```45uv pip install openpyxl pandas46```47If `uv` is unavailable:48```49python3 -m pip install openpyxl pandas50```51Optional (chart-heavy or PDF review workflows):52```53uv pip install matplotlib54```55If `uv` is unavailable:56```57python3 -m pip install matplotlib58```59System tools (for rendering):60```61# macOS (Homebrew)62brew install libreoffice poppler6364# Ubuntu/Debian65sudo apt-get install -y libreoffice poppler-utils66```6768If installation isn't possible in this environment, tell the user which dependency is missing and how to install it locally.6970## Environment71No required environment variables.7273## Examples74- Runnable Codex examples (openpyxl): `references/examples/openpyxl/`7576## Formula requirements77- Use formulas for derived values rather than hardcoding results.78- Keep formulas simple and legible; use helper cells for complex logic.79- Avoid volatile functions like INDIRECT and OFFSET unless required.80- Prefer cell references over magic numbers (e.g., `=H6*(1+$B$3)` not `=H6*1.04`).81- Guard against errors (#REF!, #DIV/0!, #VALUE!, #N/A, #NAME?) with validation and checks.82- openpyxl does not evaluate formulas; leave formulas intact and note that results will calculate in Excel/Sheets.8384## Citation requirements85- Cite sources inside the spreadsheet using plain text URLs.86- For financial models, cite sources of inputs in cell comments.87- For tabular data sourced from the web, include a Source column with URLs.8889## Formatting requirements (existing formatted spreadsheets)90- Render and inspect a provided spreadsheet before modifying it when possible.91- Preserve existing formatting and style exactly.92- Match styles for any newly filled cells that were previously blank.9394## Formatting requirements (new or unstyled spreadsheets)95- Use appropriate number and date formats (dates as dates, currency with symbols, percentages with sensible precision).96- Use a clean visual layout: headers distinct from data, consistent spacing, and readable column widths.97- Avoid borders around every cell; use whitespace and selective borders to structure sections.98- Ensure text does not spill into adjacent cells.99100## Color conventions (if no style guidance)101- Blue: user input102- Black: formulas/derived values103- Green: linked/imported values104- Gray: static constants105- Orange: review/caution106- Light red: error/flag107- Purple: control/logic108- Teal: visualization anchors (key KPIs or chart drivers)109110## Finance-specific requirements111- Format zeros as "-".112- Negative numbers should be red and in parentheses.113- Always specify units in headers (e.g., "Revenue ($mm)").114- Cite sources for all raw inputs in cell comments.115116## Investment banking layouts117If the spreadsheet is an IB-style model (LBO, DCF, 3-statement, valuation):118- Totals should sum the range directly above.119- Hide gridlines; use horizontal borders above totals across relevant columns.120- Section headers should be merged cells with dark fill and white text.121- Column labels for numeric data should be right-aligned; row labels left-aligned.122- Indent submetrics under their parent line items.123
Full transparency — inspect the skill content before installing.