Files
waggle-os/packages/marketplace/skills/xlsx-generator.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

1.7 KiB

name, description, category, builtIn
name description category builtIn
xlsx-generator Generate Excel spreadsheets using openpyxl documents true

XLSX Generator

Generate Excel spreadsheets. Use the bash tool to run a Python script with openpyxl.

Workflow

  1. Create a Python script that uses openpyxl to build the spreadsheet
  2. Run it with the bash tool
  3. Return the file path to the user

Requirements

  • python3 with openpyxl installed (pip install openpyxl)

Example Script

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active
ws.title = "Sales Data"

# Headers
headers = ["Month", "Revenue", "Expenses", "Profit"]
for col, header in enumerate(headers, 1):
    cell = ws.cell(row=1, column=col, value=header)
    cell.font = Font(bold=True, size=12)
    cell.fill = PatternFill(start_color="4472C4", fill_type="solid")
    cell.font = Font(bold=True, color="FFFFFF")

# Data
data = [
    ["Jan", 45000, 32000, 13000],
    ["Feb", 52000, 35000, 17000],
    ["Mar", 48000, 33000, 15000],
]
for row_idx, row_data in enumerate(data, 2):
    for col_idx, value in enumerate(row_data, 1):
        ws.cell(row=row_idx, column=col_idx, value=value)

# Auto-width columns
for col in ws.columns:
    ws.column_dimensions[col[0].column_letter].width = 15

wb.save("sales-report.xlsx")
print("Created sales-report.xlsx")

Tips

  • Use openpyxl.styles for formatting (fonts, colors, borders)
  • Use openpyxl.chart for embedded charts
  • Use ws.merge_cells() for merged header rows
  • Use openpyxl.utils for column letter conversions
  • Add formulas as strings: ws['D2'] = '=B2-C2'