1.7 KiB
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
- Create a Python script that uses openpyxl to build the spreadsheet
- Run it with the bash tool
- 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.stylesfor formatting (fonts, colors, borders) - Use
openpyxl.chartfor embedded charts - Use
ws.merge_cells()for merged header rows - Use
openpyxl.utilsfor column letter conversions - Add formulas as strings:
ws['D2'] = '=B2-C2'