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

终端数据分析3.0

终端销售数据分析与报告生成技能。当用户上传终端销售相关Excel文件并需要生成销售分析报告、机型/品牌分析、销售排行或可视化图表时使用此技能。具体能分析哪些维度由用户上传数据中实际包含的字段决定。

personAuthor: user_b88098e0hubcommunity

终端数据分析

快速开始

用户上传终端销售 Excel 文件后,本 skill 自动完成:数据校验 → 字段识别 → 多维分析 → HTML报告 → 图片输出

所有工具文件(Python脚本、模板、样式)与 SKILL.md 在同一目录下,直接按文件名引用。


执行流程

步骤1:自动安装依赖

每个脚本内置 ensure_deps() 函数,首次运行时自动检测并安装缺失依赖(pandas、openpyxl)。优先使用清华镜像源,失败自动回退默认源。用户无需手动安装任何依赖。

# 直接调用脚本,依赖自动处理
python process_sales_data.py <用户上传的文件路径>

步骤2:数据校验与字段识别

脚本自动识别以下维度字段(有什么分析什么,不预设):

| 字段类型 | 关键词匹配 | |:---|:---| | 品牌 | 品牌、brand | | 机型 | 机型、model、型号 | | 地区 | 省份、地市、地区、城市 | | 营业厅/门店 | 营业厅、门店 | | 客户 | 客户 | | 串码 | 串码、IMEI、串号 | | 日期 | 日期、date、时间 | | 金额 | 售价、金额、价格 |

步骤3:确认分析维度

根据识别出的字段,向用户列出将执行的分析维度,等待用户确认后再执行

步骤4:生成HTML报告

AI 直接生成完整 HTML 文件(不依赖外部模板文件),使用以下规范:

报告结构

<!-- 标题区 -->
<h1>{{由数据内容决定的标题}}</h1>
<p>数据周期:XX | 生成时间:XX</p>

<!-- KPI卡片行(4列) -->
销售总量 | 销售总额 | 活跃门店 | 环比增长

<!-- 维度区块(有字段才渲染,无字段整块跳过) -->
地区销售概览 / 品牌销售排行 / 热销机型TOP10

占位符说明(AI生成HTML时按实际数据填充):

  • {{REPORT_TITLE}} → 报告标题,根据数据来源命名
  • {{REGION_TITLE}} → 地区区块标题(如:9地市销售概览、各省销售对比)
  • {{REGION_COL}} → 地区列名(地市/省份/城市)
  • {{BRAND_TITLE}} → 品牌区块标题
  • {{MODEL_TITLE}} → 机型区块标题
  • {{KPI1_LABEL}} ~ {{KPI4_VALUE}} → KPI 卡片标签与数值

样式规范(内嵌CSS,红色系热力图)

/* 容器 */
.report-container { width: 1200px; margin: 0 auto; padding: 16px; }

/* KPI卡片 */
.kpi-card { padding: 10px; background: #fef2f2; border-left: 3px solid #dc2626; }
.kpi-label { font-size: 12px; color: #666; }
.kpi-value { font-size: 18px; font-weight: bold; color: #dc2626; }

/* 区块标题 */
.section-title { background: #dc2626; color: #fff; padding: 6px 10px; font-size: 14px; }

/* 热力图配色(销量高→深红,低→浅色) */
.heat-up-1 { background: #fff5f5; }
.heat-up-2 { background: #fed1d1; }
.heat-up-3 { background: #fca5a5; }
.heat-up-4 { background: #f87171; color: #fff; }
.heat-up-5 { background: #dc2626; color: #fff; }
.heat-flat  { background: #fafafa; }
.heat-down-1 { background: #fefefe; }
.heat-down-2 { background: #f5f5f5; }
.heat-down-3 { background: #e5e5e5; }
.heat-down-4 { background: #d4d4d4; }

/* 表格 */
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th, td { padding: 5px 8px; border: 1px solid #e5e5e5; text-align: center; }
th { background: #fef2f2; font-weight: bold; }

布局规范

  • 紧凑布局,单元格内边距 4-6px,减少留白
  • 主标题 18-20px 加粗;副标题 14-16px;正文 12-14px
  • 并列项标题字数对齐(如:销售数量/销售金额 保持4字)
  • 内容尽量单屏展示

步骤5:输出图片

HTML 报告生成后,用以下方式转为 PNG:

python html_to_image.py <生成的HTML文件路径>

HTML 和 PNG 均保存到桌面,命名规范:{报告类型}_{YYYYMMDD}.html


核心原则

  • 不预设任何具体名称:报告标题、地区名称全部由实际数据决定,不硬编码"吉林联通""9地市"等
  • 不编造数据:用户数据中没有的字段,不能出现在分析结果中
  • 按需渲染区块:数据中没有某维度字段时,对应区块整块跳过
  • 先确认再执行:所有分析动作开始前需用户确认

依赖说明

基础依赖(自动安装)

  • pandas + openpyxl — 数据读取与分析,每个脚本启动时自动检测并安装

HTML转图片(可选)

pip install playwright && playwright install chromium

无此依赖时,脚本跳过图片输出并给出提示,不影响数据分析核心功能。


数据源支持

  • 营业厅销售串码报表:字段含营业厅、串码、机型、品牌、售价等
  • 2B省分销售明细报表:字段含客户名称、串码、机型、合约金额等
  • 其他自定义格式:按实际字段自适应分析,不依赖固定格式

内置脚本说明

| 脚本文件 | 功能描述 | |:---|:---| | process_sales_data.py | 销售数据自适应分析(含 ensure_deps 自动安装依赖) | | process_inventory.py | 库存查询(省/市仓库、机型筛选、物资编码映射) | | compliance_check.py | 合规检查(销售数据 vs 合规规则比对) | | html_to_image.py | HTML转PNG(playwright 优先,wkhtmltoimage 备用) |

内置资源文件

| 资源文件 | 用途 | |:---|:---| | report_template.html | HTML报告模板(全占位符,无硬编码) | | style_guide.md | 视觉规范文档(配色/字体/布局) | | heatmap_palette.json | 热力图色阶定义 | | data_source_spec.md | 数据源字段规范 | | report_examples.md | 报告示例与占位符对照表 |


热力图色阶(内嵌参考)

{
  "heat_up": ["#fff5f5","#fed1d1","#fca5a5","#f87171","#dc2626"],
  "heat_flat": "#fafafa",
  "heat_down": ["#fefefe","#f5f5f5","#e5e5e5","#d4d4d4"]
}

规则:将数值按五档分段(0-20%, 20-40%, 40-60%, 60-80%, 80-100%),映射到对应色阶。下降数据同理反向映射。