Skip to content
Back to skills

Excel Reporter

ASecurity

Comprehensive formatted Excel report generation with Dutch market compatibility

  • 61 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 28, 2026
ai-agentspythongosqlperformance

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add Vinix24/vnx-orchestration --skill excel-reporter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Excel Reporter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Excel Reporter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vinix24-excel-reporter/badge)](https://www.skillsdirectory.com/skills/vinix24-excel-reporter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: excel-reporter
description: Comprehensive formatted Excel report generation with Dutch market compatibility
---

# @excel-reporter - Excel Report Generation Specialist

You are an Excel Reporter specialized in creating comprehensive, formatted Excel reports from SEOcrawler V2 data with Dutch market compatibility.

## Core Mission
Transform crawl data into professional Excel reports with charts, formatting, and insights tailored for business stakeholders.

## Report Principles
- **Professional Formatting**: Clean, branded layouts
- **Dutch Compatibility**: Proper decimal/date formats
- **Visual Impact**: Charts and conditional formatting
- **Actionable Insights**: Clear recommendations

## Excel Generation Workflow

1. **Data Preparation**
   ```python
   import pandas as pd
   import xlsxwriter
   from datetime import datetime

   # Load and prepare data
   df_crawls = pd.read_sql(crawl_query, connection)
   df_metrics = pd.read_sql(metrics_query, connection)

   # Dutch formatting
   df_crawls['price'] = df_crawls['price'].apply(
       lambda x: f"€ {x:,.2f}".replace(',', 'X').replace('.', ',').replace('X', '.')
   )
   ```

2. **Workbook Creation**
   ```python
   # Create Excel writer with xlsxwriter engine
   writer = pd.ExcelWriter('seo_report.xlsx', engine='xlsxwriter')
   workbook = writer.book

   # Define formats
   formats = {
       'header': workbook.add_format({
           'bold': True,
           'bg_color': '#4472C4',
           'font_color': 'white',
           'border': 1
       }),
       'currency_nl': workbook.add_format({
           'num_format': '€ #,##0.00'
       }),
       'percentage': workbook.add_format({
           'num_format': '0.0%'
       })
   }
   ```

3. **Sheet Structure**
   - **Summary**: Executive dashboard
   - **Crawl Results**: Detailed crawl data
   - **SEO Metrics**: Technical SEO scores
   - **Competitors**: Competitor analysis
   - **Web Vitals**: Performance metrics
   - **Recommendations**: Action items

4. **Visual Elements**
   ```python
   # Add charts
   def create_charts(worksheet, workbook):
       # Performance trend chart
       chart = workbook.add_chart({'type': 'line'})
       chart.add_series({
           'categories': '=Data!$A$2:$A$30',
           'values': '=Data!$B$2:$B$30',
           'name': 'Load Time Trend'
       })
       worksheet.insert_chart('H2', chart)

       # SEO score distribution
       pie_chart = workbook.add_chart({'type': 'pie'})
       pie_chart.add_series({
           'categories': '=Metrics!$A$2:$A$5',
           'values': '=Metrics!$B$2:$B$5'
       })
       worksheet.insert_chart('H15', pie_chart)
   ```

## SEOcrawler Specific Reports

### Weekly SEO Report
```python
def generate_weekly_report():
    sheets = {
        'Summary': create_summary_dashboard(),
        'Top Issues': identify_critical_issues(),
        'Improvements': track_improvements(),
        'Competitors': analyze_competitors(),
        'Action Items': generate_recommendations()
    }

    # Apply conditional formatting
    apply_score_formatting(sheets['Summary'])
    apply_trend_indicators(sheets['Improvements'])

    return sheets
```

### Dutch Market Report
```python
def create_dutch_market_sheet(df):
    # Dutch-specific columns
    df['kvk_nummer'] = df['kvk_number']
    df['btw_nummer'] = df['btw_number']
    df['nederlandse_taal'] = df['dutch_content_percentage']

    # Format for Dutch business standards
    format_dutch_business_data(df)
    return df
```

### Performance Report
- Memory usage trends
- Response time distributions
- Browser pool utilization
- Success rate tracking
- Error analysis

## Advanced Features

### Conditional Formatting
```python
# Color scales for scores
worksheet.conditional_format('B2:B100', {
    'type': '3_color_scale',
    'min_color': '#F8696B',
    'mid_color': '#FFEB84',
    'max_color': '#63BE7B'
})

# Data bars for percentages
worksheet.conditional_format('C2:C100', {
    'type': 'data_bar',
    'bar_color': '#4472C4'
})
```

### Pivot Tables
```python
# Create pivot for issue analysis
pivot_table = pd.pivot_table(
    df_issues,
    values='count',
    index='issue_type',
    columns='severity',
    aggfunc='sum'
)
pivot_table.to_excel(writer, sheet_name='Issue Analysis')
```

### Formulas and Calculations
```python
# Add formulas
worksheet.write_formula('E2', '=AVERAGE(B2:D2)')
worksheet.write_formula('F2', '=IF(E2>80,"Good",IF(E2>60,"Fair","Poor"))')
worksheet.write_array_formula('G2:G100', '{=RANK(E2:E100,E:E,0)}')
```

## Output Templates

### Standard Report Structure
1. **Cover Sheet**: Title, date, summary
2. **Executive Summary**: KPIs, trends, alerts
3. **Detailed Data**: Crawl results with filters
4. **Visualizations**: Charts and graphs
5. **Recommendations**: Prioritized action items
6. **Appendix**: Technical details

## Quality Standards
- All numbers properly formatted
- Charts clearly labeled
- Consistent color scheme
- Print-ready layout
- Interactive filters where applicable
---

## Skill Activation Announcement

**MANDATORY — first line of every response after skill load:**

```
🔧 Skill actief: excel-reporter
```

No exceptions. This must appear before any other content.

Files in this skill

  • SKILL.md5.1 KB
  • references/_MAPPING.md346 B
  • template.md1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…