Back to skills
extension
Category: Data & AnalyticsNo API key required

数据可视化报表生成器

This skill should be used when generating data visualizations or reports from spreadsheet data. It triggers on requests to create charts, graphs, Excel reports, data dashboards, or any visual report from CSV/Excel data.

personAuthor: user_5735bd90hubcommunity

Data Visualization Report Generator

从 CSV/Excel 数据生成专业的交互式 HTML 数据报表。

核心能力

  1. 数据处理与确认流程:自动分析列类型(数值/日期/类别/文本),向用户确认维度与度量映射
  2. 多模板 HTML 报表:3套模板(现代简约 / 数据看板 / 商务经典),带 ECharts 交互动效
  3. 一键截图:内置 html2canvas,一键导出 PNG 截图
  4. 全文可编辑:所有标题和标签支持 contentEditable 直接修改
  5. 中英文切换:默认中文,一键切换英文界面
  6. 颜色自动适配:从参考图片/HTML 提取主色调,或直接指定颜色
  7. 筛选联动:时间范围选择器 + 多维度下拉筛选
  8. 格式化规范:百分比2位小数、千分位、微软雅黑、涨红跌绿

使用流程

Step 1: 分析数据

python scripts/generate_html_report.py data.csv --analyze

输出将展示每列的类型、唯一值、空值率、数值范围等,并给出建议的维度/度量映射。

Step 2: 与用户确认

将分析结果呈现给用户,确认:

  • 维度列(X轴 / 分组依据):一般是日期或类别
  • 度量列(Y轴 / 数值):一般是数值列,需确认聚合方式(sum/avg/max/min/count)
  • 图表类型:推荐合适的图表,让用户选择
  • KPI 指标:需要展示哪些关键数字卡片

Step 3: 生成报表

方式一:自动推断(快速)

python scripts/generate_html_report.py data.csv --auto --template modern -o report.html

如果参数不生效或想确认实际使用的配置,加 --verbose

python scripts/generate_html_report.py data.csv --auto --verbose -o report.html

方式二:配置文件(精细控制)

创建 config.json

{
  "title": "月度销售报表",
  "subtitle": "2024年Q1数据",
  "dimensions": [
    {"column": "month", "role": "x_axis"},
    {"column": "region", "role": "group_by"}
  ],
  "measures": [
    {"column": "revenue", "aggregation": "sum"},
    {"column": "profit", "aggregation": "sum"}
  ],
  "filters": [
    {"column": "region", "role": "filter"}
  ],
  "kpis": [
    {"column": "revenue", "aggregation": "sum", "label_cn": "总收入", "format": "currency"},
    {"column": "profit", "aggregation": "sum", "label_cn": "总利润", "format": "currency"}
  ],
  "charts": [
    {"chart_type": "bar", "x_column": "month", "y_columns": ["revenue", "profit"], "title_cn": "月度营收与利润"},
    {"chart_type": "pie", "x_column": "region", "y_columns": ["revenue"], "title_cn": "区域营收占比"},
    {"chart_type": "line", "x_column": "month", "y_columns": ["revenue"], "title_cn": "营收趋势"}
  ]
}

然后:

python scripts/generate_html_report.py data.csv --config config.json --template modern -o report.html

指定颜色

从参考图片提取:

python scripts/color_extractor.py logo.png --output palette.json
python scripts/generate_html_report.py data.csv --auto --color-file palette.json -o report.html

直接指定:

python scripts/generate_html_report.py data.csv --auto --colors "#1a73e8,#ea4335,#34a853" -o report.html

生成 Excel 报表(辅助功能)

python scripts/generate_excel_report.py data.csv --group-by region --value-columns revenue,profit --aggregation sum --chart-type bar --title "区域销售" -o report.xlsx

模板选择

| 模板 ID | 名称 | 特点 | 适用场景 | |---------|------|------|----------| | modern | 现代简约 | 白底、清爽、卡片阴影 | 日常报告、数据分析 | | dashboard | 数据看板 | 深色主题、数据大屏 | KPI看板、大屏展示 | | classic | 商务经典 | 暖色调、稳重典雅 | 正式汇报、高管报告 |

支持的图表类型

bar line pie stacked_bar area scatter heatmap radar funnel gauge

详见 references/chart_selection_guide.md

格式化规范

详见 references/format_standards.md

关键规则:

  • 字体:Microsoft YaHei(微软雅黑)
  • 百分比:保留2位小数
  • 金额:¥ + 千分位分隔
  • 涨 = 红色 #dc3545,跌 = 绿色 #28a745(中国股市惯例)
  • 正增长率:+前缀 + 红色;负增长率:-前缀 + 绿色

依赖

  • Python 3.8+
  • openpyxl(Excel读写)
  • Pillow(颜色提取,可选)

安装:pip install openpyxl Pillow

生成的 HTML 依赖 CDN(无需安装):

  • ECharts 5.5(图表渲染)
  • html2canvas 1.4(截图导出)

能力边界

使用本 skill 前请了解以下限制,避免踩坑:

  • 文件大小:最大 50MB,超过 20MB 给出性能警告。行数 >50000 不建议使用
  • Excel 多 sheet:仅读取第一个工作表,其他 sheet 会被忽略
  • CSV 编码:优先 UTF-8,但内置 GBK/GB2312/GB18030 自动检测
  • 图表数量:自动模式最多 4 个图表、6 个 KPI、50 个筛选选项
  • CDN 依赖:生成的 HTML 依赖 jsdelivr CDN(ECharts + html2canvas),离线不可用
  • 数据修改:HTML 中的可编辑文字仅在当前浏览器会话有效,刷新丢失
  • 截图限制:部分 CSS 效果(如 backdrop-filter)截图会丢失

完整边界说明和已知限制见 references/limitations_and_faq.md

故障排除

遇到错误时,脚本会输出带有错误码的友好提示,包含具体原因和修复建议。常见错误码:

| 错误码 | 含义 | |--------|------| | FILE_NOT_FOUND | 数据文件路径错误 | | UNSUPPORTED_FORMAT | 文件格式不被支持(仅 CSV/Excel) | | CSV_ENCODING_ERROR | CSV 编码无法识别,建议存为 UTF-8 | | MISSING_OPENPYXL | 缺少 openpyxl 库:pip install openpyxl | | NO_DATA_ROWS | 文件仅有表头无数据 | | INVALID_COLOR_FORMAT | 颜色值格式错误,需为 #rrggbb | | COLOR_FILE_NOT_FOUND | 颜色方案文件不存在 | | CONFIG_NOT_FOUND | 配置文件路径错误 |

使用 --verbose(或 -v)参数可查看当前使用的完整配置摘要,帮助确认参数是否正确生效。

完整 FAQ 见 references/limitations_and_faq.md

HTML 报表特性

生成的 HTML 自带以下交互功能:

  1. 模板切换:工具栏按钮,3套模板即时切换
  2. 一键截图:工具栏按钮,导出全页 PNG
  3. 中英文切换:工具栏按钮,全部界面文字切换
  4. 文字可编辑:点击标题/标签直接修改(contentEditable)
  5. 筛选联动:时间范围选择器 + 下拉多选,联动所有图表
  6. 响应式:适配桌面和移动端
  7. 动效:卡片入场动画、图表弹性动画、KPI 渐入
  8. 提示框:悬停显示详细数据(格式化后)