Skills claude-office-skills skills

report-generator

Use it when:
You have a CSV of sales or business data and want a quick report with KPIs and charts.
It does:
Computes totals, averages and the top product with pandas, plots bar and line charts with matplotlib, and fills an HTML template of KPI cards.
You get:
An HTML report and a PNG of its charts, from the skill's sample sales-report script.
Limits:
Short sample Python to adapt, whose parts don't fit together as written; the ReportLab PDF route is a stub, and its frontmatter's office-mcp tools are never called.
Needs:
Python with pandas and matplotlib.

TL;DR

From Claude Office Skills. You provide data as CSV, Excel or JSON, or describe it, and say what report you need, such as a sales report, a monthly KPI dashboard or an executive summary with charts. The skill gives the agent a report outline (executive summary, KPI dashboard, detailed analysis, charts, recommendations) and sample Python to adapt. Its sales-report example reads a CSV, computes total revenue, order count, average order and top product, draws revenue by product and by month with matplotlib and saves the charts as a PNG, then writes an HTML page with styled KPI cards. As written the pieces don't fit: the HTML template expects figures named revenue and growth, which the sales example never sets, so the code needs adapting before it runs. Another function sketches a PDF version with ReportLab but leaves the PDF code out. It links Matplotlib, Plotly and ReportLab as resources.

Summarizes the skill at 9c4c7d5.

npx skills add https://github.com/claude-office-skills/skills --skill report-generator
Total Downloads
5,400 on skills.sh, Nov 9, 2026
Repo stars
569 claude-office-skills/skills
First seen
Mar 9, 2026 on skills.sh
Weekly Downloads
87
-2% over the 8 weeks to Nov 9
Weekly values
Week toInstalls
Sep 2189
Sep 2872
Oct 567
Oct 12108
Oct 19234
Oct 26186
Nov 272
Nov 987
Category

Research reproduction, financial data, charts and diagrams.

Office files, notes and suites like Lark and Google Workspace.

Type

Operates a CLI, API, app or bundled script to get something done.

Effect

Its own steps create or change files, git state or local tools.

Needs

A specific command-line tool or desktop app must be installed, such as gh, agent-browser, LibreOffice, Obsidian or a vendor CLI.

Publisher

Everyone else. Unverified vendor claims default to community.

Topics
Stack

SKILL.md

From claude-office-skills/skills at 9c4c7d5. Checked daily, last changed Nov 6, 2026.

Frontmatter
# ═══════════════════════════════════════════════════════════════════════════════
# CLAUDE OFFICE SKILL - Enhanced Metadata v2.0
# ═══════════════════════════════════════════════════════════════════════════════

# Basic Information
name: report-generator
description: "Generate professional data reports with charts, tables, and visualizations"
version: "1.0"
author: claude-office-skills
license: MIT

# Categorization
category: presentation
tags:
  - report
  - generator
  - data
  - visualization
department: All

# AI Model Compatibility
models:
  recommended:
    - claude-sonnet-4
    - claude-opus-4
  compatible:
    - claude-3-5-sonnet
    - gpt-4
    - gpt-4o

# MCP Tools Integration
mcp:
  server: office-mcp
  tools:
    - create_docx
    - create_xlsx
    - create_chart
    - create_pptx

# Skill Capabilities
capabilities:
  - report_generation
  - data_visualization

# Language Support
languages:
  - en
  - zh

Report Generator Skill

Overview

This skill enables automatic generation of professional data reports. Create dashboards, KPI summaries, and analytical reports with charts, tables, and insights from your data.

How to Use

  1. Provide data (CSV, Excel, JSON, or describe it)
  2. Specify the type of report needed
  3. I'll generate a formatted report with visualizations

Example prompts:

  • "Generate a sales report from this data"
  • "Create a monthly KPI dashboard"
  • "Build an executive summary with charts"
  • "Produce a data analysis report"

Domain Knowledge

Report Components
# Report structure
report = {
    'title': 'Monthly Sales Report',
    'period': 'January 2024',
    'sections': [
        'executive_summary',
        'kpi_dashboard',
        'detailed_analysis',
        'charts',
        'recommendations'
    ]
}
Using Python for Reports
import pandas as pd
import matplotlib.pyplot as plt
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def generate_report(data, output_path):
    # Load data
    df = pd.read_csv(data)
    
    # Calculate KPIs
    total_revenue = df['revenue'].sum()
    avg_order = df['revenue'].mean()
    growth = df['revenue'].pct_change().mean()
    
    # Create charts
    fig, axes = plt.subplots(2, 2, figsize=(12, 10))
    df.plot(kind='bar', ax=axes[0,0], title='Revenue by Month')
    df.plot(kind='line', ax=axes[0,1], title='Trend')
    plt.savefig('charts.png')
    
    # Generate PDF
    # ... PDF generation code
    
    return output_path
HTML Report Template
def generate_html_report(data, title):
    html = f'''
    <!DOCTYPE html>
    <html>
    <head>
        <title>{title}</title>
        <style>
            body {{ font-family: Arial; margin: 40px; }}
            .kpi {{ display: flex; gap: 20px; }}
            .kpi-card {{ background: #f5f5f5; padding: 20px; border-radius: 8px; }}
            .metric {{ font-size: 2em; font-weight: bold; color: #2563eb; }}
            table {{ border-collapse: collapse; width: 100%; }}
            th, td {{ border: 1px solid #ddd; padding: 12px; text-align: left; }}
        </style>
    </head>
    <body>
        <h1>{title}</h1>
        <div class="kpi">
            <div class="kpi-card">
                <div class="metric">${data['revenue']:,.0f}</div>
                <div>Total Revenue</div>
            </div>
            <div class="kpi-card">
                <div class="metric">{data['growth']:.1%}</div>
                <div>Growth Rate</div>
            </div>
        </div>
        <!-- More content -->
    </body>
    </html>
    '''
    return html

Example: Sales Report

import pandas as pd
import matplotlib.pyplot as plt

def create_sales_report(csv_path, output_path):
    # Read data
    df = pd.read_csv(csv_path)
    
    # Calculate metrics
    metrics = {
        'total_revenue': df['amount'].sum(),
        'total_orders': len(df),
        'avg_order': df['amount'].mean(),
        'top_product': df.groupby('product')['amount'].sum().idxmax()
    }
    
    # Create visualizations
    fig, axes = plt.subplots(2, 2, figsize=(14, 10))
    
    # Revenue by product
    df.groupby('product')['amount'].sum().plot(
        kind='bar', ax=axes[0,0], title='Revenue by Product'
    )
    
    # Monthly trend
    df.groupby('month')['amount'].sum().plot(
        kind='line', ax=axes[0,1], title='Monthly Revenue'
    )
    
    plt.tight_layout()
    plt.savefig(output_path.replace('.html', '_charts.png'))
    
    # Generate HTML report
    html = generate_html_report(metrics, 'Sales Report')
    
    with open(output_path, 'w') as f:
        f.write(html)
    
    return output_path

create_sales_report('sales_data.csv', 'sales_report.html')

Resources