Excel表格分析图表报表:一套基于 pandas 的 Excel 读写分析工作流

前言

处理 Excel 时常见的问题是流程散:读进来要挑引擎,聚合要手写循环,透视表和图表要再查一遍 API,写出时列宽和格式还得单独处理。这个 Skill 把这些步骤整理成一条固定路径,按顺序执行即可。

下面介绍 Excel表格分析图表报表(坐标 @org-b6kzcl68/excel-analysis),一个面向 .xlsx 数据分析场景的 Skill。

这是什么

Excel表格分析图表报表是一个数据分析类 Skill,发布者为重庆途光网络传媒有限责任公司,来源标记为 enterprise,版本 1.0.0,当前分类为 data-analysis,标签显示不依赖 API Key(requires_api_key=false)。

它解决的问题是:把 Excel 电子表格的读取、清洗、聚合、透视、可视化与写出串成完整工作流,让模型在接到「分析这个表格」「出个透视表」「画几张图」这类需求时,有确定的步骤和参数可循。

核心功能

1、读取与统计概览:快速入门路径,读入文件后先给出整体统计概览。
2、遍历工作簿:覆盖工作簿内全部工作表,不局限于当前活动表。
3、分组聚合与指标计算:支持分组聚合、筛选、指标计算与排序。
4、写出:带列宽自适应的写出。
5、透视表与报告:程序化生成透视表,并另存为报告文件。
6、可视化:用 matplotlib 生成柱状图与饼图。
7、数据清洗:去重、缺失值处理、空白字符清理、类型转换。
8、多文件处理:多文件纵向拼接,以及按公共列合并。
9、高级格式化:用 openpyxl 做条件格式(红绿填充)与加粗表头。

性能相关的能力一并给出:usecols 只读指定列、chunksize 处理超大文件、按文件类型选择引擎、dtype 指定列类型加速读取。

涉及的软件包为 pandas、openpyxl、xlrd、xlsxwriter、matplotlib。

安装与启用

该 Skill 基于通用 SKILL.md 格式。安装命令与启用方式以 SkillHub 页面为准,资料中未给出可直接复制的安装命令,此处不臆造。

可用地址:

SkillHub 页面: https://www.skillhub.cn/skills/org-b6kzcl68/excel-analysis
接口地址: https://api.skillhub.cn/user_fbd3ba50/excel-analysis

触发时机:当用户要求分析 Excel 文件、电子表格、表格数据或 .xlsx 文件,或需要生成透视表、图表和数据报表时使用。触发词包括 Excel分析、pandas、透视表、数据可视化、数据清洗、表格合并、openpyxl、图表生成。

说明:资料中未列出 Cursor、Codex CLI、Claude Code 的差异化接入方式,不同编辑器下的启用步骤请以官方页面说明为准。

典型用法

以下是依据 Skill 说明整理的示例,用于说明每一步在做什么。

1、读取并做统计概览。这一步先确认文件可读、列名和数据类型是否符合预期。

import pandas as pd

df = pd.read_excel("sales.xlsx")
print(df.shape)
print(df.dtypes)
print(df.describe(include="all"))

2、只读指定列、指定类型。文件很大或列很多时,用 usecols 和 dtype 减少内存占用。

df = pd.read_excel(
    "sales.xlsx",
    usecols=["region", "amount", "date"],
    dtype={"region": "string", "amount": "float64"},
)

3、超大文件分块读取。用 chunksize 逐块处理,避免一次性载入。

chunks = pd.read_excel("huge.xlsx", chunksize=100_000)
for chunk in chunks:
    chunk_result = chunk.groupby("region")["amount"].sum()

4、按文件类型选引擎。.xlsx 用 openpyxl,.xls 用 xlrd。

pd.read_excel("legacy.xls", engine="xlrd")
pd.read_excel("new.xlsx", engine="openpyxl")

5、分组聚合与排序。这一步完成指标计算,是后续透视表的基础。

result = (
    df.groupby("region", as_index=False)["amount"]
    .agg(["sum", "mean", "count"])
    .sort_values("sum", ascending=False)
)

6、生成透视表并另存报告。透视表按程序生成,直接写入新文件。

pivot = pd.pivot_table(
    df, values="amount", index="region", columns="month", aggfunc="sum"
)
pivot.to_excel("pivot_report.xlsx")

7、画图。matplotlib 出柱状图和饼图。

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt

pivot["total"].sort_values(ascending=False).head(10).plot.bar()
plt.title("Top 10 regions")
plt.tight_layout()
plt.savefig("top10.png", dpi=150)
plt.close()

pivot["total"].plot.pie(autopct="%1.1f%%")
plt.savefig("share.png", dpi=150)
plt.close()

8、写出时做条件格式与表头样式。用 openpyxl 加粗表头,并按规则填充红绿。

from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill

wb = load_workbook("pivot_report.xlsx")
ws = wb.active

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

green = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
red = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")

for row in ws.iter_rows(min_row=2, values_only=False):
    for cell in row:
        if isinstance(cell.value, (int, float)) and cell.value >= 0:
            cell.fill = green
        else:
            cell.fill = red

wb.save("pivot_report.xlsx")

适用场景与注意

适合的场景:已有 .xlsx 或表格数据,需要做分组统计、出透视表、生成图表报表,或需要清洗、合并多个表格文件。

需要注意的几点:

1、引擎必须与文件类型匹配,.xls 走 xlrd,.xlsx 走 openpyxl,写回用 xlsxwriter。
2、大文件优先考虑 usecols 和 chunksize,不要默认全量读入。
3、条件格式和表头样式需要单独用 openpyxl 处理,pandas 的写出不会自动带上。
4、requires_api_key=false 意味着运行不依赖外部 API Key,但 pandas、openpyxl、xlrd、xlsxwriter、matplotlib 需要在运行环境中自行安装。
5、资料中提到「如需办公文档完整工作流套件,淘宝搜索『AI灵匣』店铺获取完整版」,该表述属于发布者信息,本文档不对其内容做判断。

小结

Excel表格分析图表报表的价值在于把 Excel 分析拆成可顺序执行的步骤:读、清洗、聚合、透视、画图、格式化写出,每步都有明确的工具和参数对应。对于需要在 .xlsx 上做常规数据分析的开发者,按这套流程走可以减少临时查 API 的次数。

官方页面:https://www.skillhub.cn/skills/org-b6kzcl68/excel-analysis

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜