Excel Builder
by @jimmy974
Build .xlsx files with formulas, merged cells, data validation, conditional formatting, pivot tables, and charts. Use when creating Excel spreadsheets, finan...
clawhub install excel-builderπ About This Skill
name: excel-builder description: Build .xlsx files with formulas, merged cells, data validation, conditional formatting, pivot tables, and charts. Use when creating Excel spreadsheets, financial tables, data entry forms, or any structured .xlsx deliverable requiring formulas or formatting. license: MIT metadata: version: "1.0.0" domain: document-generation triggers: Excel, xlsx, spreadsheet, formula, pivot table, chart, data validation, conditional formatting, openpyxl, xlsxwriter, merged cells, workbook role: builder scope: implementation output-format: xlsx related-skills: financial-model-builder, data-analysis-report, pdf-report-generator
Excel Builder
Builds structured .xlsx files programmatically using Python libraries (openpyxl or xlsxwriter).
When to Use This Skill
Core Workflow
1. Choose library β Use openpyxl for reading/modifying existing files; use xlsxwriter for new write-only files with rich charts
2. Design structure β Define sheets, columns, headers, and data rows before writing
3. Write data β Populate cells row by row; apply number formats ("#,##0.00", "YYYY-MM-DD")
4. Add formulas β Use Excel formula strings: =SUM(B2:B100), =IF(A2>0, "Yes", "No")
5. Format β Apply styles: bold headers, column widths, merged cells, fill colors, borders
6. Validate β Add data validation (dropdown lists, numeric ranges) where applicable
7. Charts β Add charts referencing data ranges; set titles and axis labels
8. Save and verify β Save to output path; confirm file exists and is non-zero bytes
Key Patterns
openpyxl (read/write existing)
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, PatternFill, Alignmentwb = Workbook()
ws = wb.active
ws.title = "Report"
ws["A1"] = "Revenue"
ws["A1"].font = Font(bold=True, size=12)
ws.column_dimensions["A"].width = 20
wb.save("output.xlsx")
xlsxwriter (new files with charts)
import xlsxwriter
wb = xlsxwriter.Workbook("output.xlsx")
ws = wb.add_worksheet("Summary")
bold = wb.add_format({"bold": True, "bg_color": "#4472C4", "font_color": "white"})
ws.write("A1", "Month", bold)
chart = wb.add_chart({"type": "column"})
chart.add_series({"values": "=Summary!$B$2:$B$13", "name": "Revenue"})
ws.insert_chart("D2", chart)
wb.close()
Error Handling
openpyxl not installed: pip install openpyxlxlsxwriter not installed: pip install xlsxwriterwb.save() in try/except; report path conflictsos.path.getsize(path) > 0 before returningOutput
Return the absolute path to the saved .xlsx file. If generating multiple sheets, list each sheet name and row count in a brief summary.