PluginBench
Skill
Review
Audit score 70

Excel Analysis

davila7/claude-code-templates

Analyze Excel spreadsheets, create pivot tables, generate charts, and perform data analysis.

What is Excel Analysis?

Read, analyze, and manipulate Excel files using pandas and openpyxl. Use this skill when you need to work with .xlsx files, perform data aggregation, create pivot tables, generate visualizations, or clean tabular data.

  • Read Excel files and multiple sheets with pandas
  • Create and export pivot tables programmatically
  • Generate bar charts, pie charts, and other visualizations
  • Filter, group, and aggregate data by column values
  • Clean data by removing duplicates, handling missing values, and converting types
  • Merge and join multiple Excel files on common columns

How to install Excel Analysis

npx skills add https://github.com/davila7/claude-code-templates --skill excel analysis
Prerequisites
  • Python environment with pandas, openpyxl, and matplotlib installed
Claude Code
Cursor
Windsurf
Cline

How to use Excel Analysis

  1. 1.Read your Excel file using pd.read_excel() and inspect the data with df.head() and df.describe()
  2. 2.Perform data cleaning: remove duplicates, handle missing values, convert data types as needed
  3. 3.Filter, group, and aggregate data using groupby(), filtering, and sorting operations
  4. 4.Create pivot tables with pd.pivot_table() to summarize data by dimensions
  5. 5.Generate charts using matplotlib or pandas plotting methods
  6. 6.Write results back to Excel using pd.ExcelWriter() with optional formatting via openpyxl
  7. 7.Apply conditional formatting or styling to highlight key metrics or thresholds

Use cases

Good for
  • Analyze sales data by region or product using pivot tables and charts
  • Combine quarterly sales reports from multiple Excel files into a single dataset
  • Clean messy customer data by removing duplicates and standardizing formats
  • Generate formatted Excel reports with conditional highlighting based on thresholds
  • Create visualizations from spreadsheet data for presentations or dashboards
Who it's for
  • Data analysts working with Excel-based datasets
  • Business users needing to consolidate and summarize spreadsheet data
  • Developers automating Excel report generation
  • Anyone performing exploratory data analysis on tabular data

Excel Analysis FAQ

How do I read a specific sheet from an Excel file?

Use pd.read_excel('file.xlsx', sheet_name='SheetName') to read a specific sheet, or sheet_name=0 for the first sheet.

Can I read very large Excel files efficiently?

Yes, use the usecols parameter to read only needed columns, or specify dtype to optimize column types. For extremely large files, consider using chunksize.

How do I apply conditional formatting like color-coding cells?

After writing to Excel with pandas, load the workbook with openpyxl and use PatternFill and Font objects to apply styles to specific cells based on conditions.

Can I merge data from multiple Excel files?

Yes, use pd.concat() to stack files vertically or pd.merge() to join files on a common column like customer_id.

What chart types can I create?

You can create bar charts, pie charts, line charts, histograms, and more using matplotlib or pandas built-in plotting methods.

Full instructions (SKILL.md)

Source of truth, from davila7/claude-code-templates.


name: Excel Analysis description: Analyze Excel spreadsheets, create pivot tables, generate charts, and perform data analysis. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.

Excel Analysis

Quick start

Read Excel files with pandas:

import pandas as pd

# Read Excel file
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")

# Display first few rows
print(df.head())

# Basic statistics
print(df.describe())

Reading multiple sheets

Process all sheets in a workbook:

import pandas as pd

# Read all sheets
excel_file = pd.ExcelFile("workbook.xlsx")

for sheet_name in excel_file.sheet_names:
    df = pd.read_excel(excel_file, sheet_name=sheet_name)
    print(f"\n{sheet_name}:")
    print(df.head())

Data analysis

Perform common analysis tasks:

import pandas as pd

df = pd.read_excel("sales.xlsx")

# Group by and aggregate
sales_by_region = df.groupby("region")["sales"].sum()
print(sales_by_region)

# Filter data
high_sales = df[df["sales"] > 10000]

# Calculate metrics
df["profit_margin"] = (df["revenue"] - df["cost"]) / df["revenue"]

# Sort by column
df_sorted = df.sort_values("sales", ascending=False)

Creating Excel files

Write data to Excel with formatting:

import pandas as pd

df = pd.DataFrame({
    "Product": ["A", "B", "C"],
    "Sales": [100, 200, 150],
    "Profit": [20, 40, 30]
})

# Write to Excel
writer = pd.ExcelWriter("output.xlsx", engine="openpyxl")
df.to_excel(writer, sheet_name="Sales", index=False)

# Get worksheet for formatting
worksheet = writer.sheets["Sales"]

# Auto-adjust column widths
for column in worksheet.columns:
    max_length = 0
    column_letter = column[0].column_letter
    for cell in column:
        if len(str(cell.value)) > max_length:
            max_length = len(str(cell.value))
    worksheet.column_dimensions[column_letter].width = max_length + 2

writer.close()

Pivot tables

Create pivot tables programmatically:

import pandas as pd

df = pd.read_excel("sales_data.xlsx")

# Create pivot table
pivot = pd.pivot_table(
    df,
    values="sales",
    index="region",
    columns="product",
    aggfunc="sum",
    fill_value=0
)

print(pivot)

# Save pivot table
pivot.to_excel("pivot_report.xlsx")

Charts and visualization

Generate charts from Excel data:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_excel("data.xlsx")

# Create bar chart
df.plot(x="category", y="value", kind="bar")
plt.title("Sales by Category")
plt.xlabel("Category")
plt.ylabel("Sales")
plt.tight_layout()
plt.savefig("chart.png")

# Create pie chart
df.set_index("category")["value"].plot(kind="pie", autopct="%1.1f%%")
plt.title("Market Share")
plt.ylabel("")
plt.savefig("pie_chart.png")

Data cleaning

Clean and prepare Excel data:

import pandas as pd

df = pd.read_excel("messy_data.xlsx")

# Remove duplicates
df = df.drop_duplicates()

# Handle missing values
df = df.fillna(0)  # or df.dropna()

# Remove whitespace
df["name"] = df["name"].str.strip()

# Convert data types
df["date"] = pd.to_datetime(df["date"])
df["amount"] = pd.to_numeric(df["amount"], errors="coerce")

# Save cleaned data
df.to_excel("cleaned_data.xlsx", index=False)

Merging and joining

Combine multiple Excel files:

import pandas as pd

# Read multiple files
df1 = pd.read_excel("sales_q1.xlsx")
df2 = pd.read_excel("sales_q2.xlsx")

# Concatenate vertically
combined = pd.concat([df1, df2], ignore_index=True)

# Merge on common column
customers = pd.read_excel("customers.xlsx")
sales = pd.read_excel("sales.xlsx")

merged = pd.merge(sales, customers, on="customer_id", how="left")

merged.to_excel("merged_data.xlsx", index=False)

Advanced formatting

Apply conditional formatting and styles:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Font

# Create Excel file
df = pd.DataFrame({
    "Product": ["A", "B", "C"],
    "Sales": [100, 200, 150]
})

df.to_excel("formatted.xlsx", index=False)

# Load workbook for formatting
wb = load_workbook("formatted.xlsx")
ws = wb.active

# Apply conditional formatting
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
green_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")

for row in range(2, len(df) + 2):
    cell = ws[f"B{row}"]
    if cell.value < 150:
        cell.fill = red_fill
    else:
        cell.fill = green_fill

# Bold headers
for cell in ws[1]:
    cell.font = Font(bold=True)

wb.save("formatted.xlsx")

Performance tips

  • Use read_excel with usecols to read specific columns only
  • Use chunksize for very large files
  • Consider using engine='openpyxl' or engine='xlrd' based on file type
  • Use dtype parameter to specify column types for faster reading

Available packages

  • pandas - Data analysis and manipulation (primary)
  • openpyxl - Excel file creation and formatting
  • xlrd - Reading older .xls files
  • xlsxwriter - Advanced Excel writing capabilities
  • matplotlib - Chart generation

Related skills

More from davila7/claude-code-templates and the wider catalog.

EXexploratory-data-analysis logo

exploratory-data-analysis

davila7/claude-code-templates

Automated exploratory analysis for 200+ scientific data formats with format-specific insights and quality reports.

1.4k installs
FRfrontend-dev-guidelines logo

frontend-dev-guidelines

davila7/claude-code-templates

Frontend development guidelines for React/TypeScript applications. Modern patterns including Suspense, lazy loading, useSuspenseQuery, file organization with features directory, MUI v7 styling, TanStack Router, performance optimization, and TypeScript best practices. Use when creating components, pages, features, fetching data, styling, routing, or working with frontend code.

660 installs
GEgenerate-image logo

generate-image

davila7/claude-code-templates

Generate or edit images using AI models (FLUX, Gemini). Use for general-purpose image generation including photos, illustrations, artwork, visual assets, concept art, and any image that isn't a technical diagram or schematic. For flowcharts, circuits, pathways, and technical diagrams, use the scientific-schematics skill instead.

1.1k installs
GOgoogle-analytics logo

google-analytics

davila7/claude-code-templates

Analyze Google Analytics data, review website performance metrics, identify traffic patterns, and suggest data-driven improvements. Use when the user asks about analytics, website metrics, traffic analysis, conversion rates, user behavior, or performance optimization.

868 installs
JIjira logo

jira

davila7/claude-code-templates

Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.

927 installs
LAlangchain logo

langchain

davila7/claude-code-templates

Framework for building LLM-powered applications with agents, chains, and RAG. Supports multiple providers (OpenAI, Anthropic, Google), 500+ integrations, ReAct agents, tool calling, memory management, and vector store retrieval. Use for building chatbots, question-answering systems, autonomous agents, or RAG applications. Best for rapid prototyping and production deployments.

781 installs