返回 Skill 列表
extension
分类: 数据与分析无需 API Key

数据可视化报表生成器

从 CSV/Excel 数据生成交互式 HTML 报表,支持多模板、中英文切换、一键截图、筛选联动

person作者: 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. 提示框:悬停显示详细数据(格式化后)