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

Excel图表报告

把 CSV 或 Excel 表变成能放进汇报的 PNG 图、中文分析(趋势、占比、异常)和带图表页的 xlsx,数字全来自你的表。触发词:Excel图表、做图表、数据可视化、表格分析、占比图、图表报告。输入 note。一次 1.00 元。未付款会遇到 HTTP 402 和 Payment-Needed,付款只走支付宝官方买家 CLI。

person作者: user_b4da0893hubcommunity

Excel图表报告

拿到的是三样能直接用的东西:

  1. 几张 PNG 图:趋势、占比、排行,配好中文标题和单位,可以直接贴进 PPT 或周报。
  2. 一段中文分析:三到六条,讲趋势、占比和异常,每条都带着表里的具体数字。
  3. 一份 xlsx:「图表」页放 Excel 原生图表,引用「汇总」页的数,改了数图会跟着变。

图上和分析里的每个数字都能在你的表里找到出处。表格只在你本机处理,不上传到收款接口。

给要把一张业务表快速变成汇报材料的运营、销售、财务和老师用。

示例:用这张表做图表报告,看各渠道 1-9 月的趋势和占比。一次 1.00 元。

支付宝服务标识:API_59889EA37657438C。资源是 POST https://49.232.229.62/v1/chart。

触发词

Excel 图表、做图表、表格出图、数据可视化、图表报告、销售趋势图、占比图、排行图、表格分析。用户只问某一格的数或一个简单求和时,直接回答,不必出报告,也不必付款。

输入参数

| 参数 | 必填 | 说明 | | --- | --- | --- | | note | 是 | 一句话说明这张表是什么、想看什么,例如「1-9月各渠道销售额,看趋势和占比」。POST 正文只有这一个字段。不要把表里的数据或客户名写进 note,它会出现在付款说明里 | | 数据文件 | 是 | CSV、xlsx 或 xls。没有文件就停,不要用示例数据充数 | | 工作表 | 否 | 多个工作表时指定用哪个。不说就用第一个非空表,并在说明里写明 | | 关注的列 | 否 | 比如「只看销售额和订单数」。不说就按下面的规则自动选 | | 输出位置 | 否 | 默认在源文件旁新建 <源文件名>_图表报告/。同名文件夹加序号,不覆盖 |

POST 正文始终是同一份 JSON,例如 {"note":"表格用途或想看什么"}。probe、pay、complete 都复用这一份,不改字段、不改 URL。

价格

一次 1.00 CNY(1.00 元/次)。价格以服务端 402 账单为准,请求体里不写金额,也不要改单价。

安装买家依赖

买家机器执行一次,不要把这个包装进技能 zip:

npx -y @alipay/agent-payment@latest install

装好后应能运行 alipay-bot。卖家 SDK @alipay/alipay-aipay 只留在服务端,用来验凭证和做商家履约确认。不要把它装进本技能,也不要把它当成买家付款工具。后端源码不在本包里。

调用流程

先把输入收齐再付款:数据文件能打开,要用哪个工作表已经确定。缺了就先问用户,不要先收钱。

付款只走官方买家 CLI。不要自写签名,不要自己拼 Payment-Proof。

状态目录用 .state/<session-id>,权限保持私有。这个目录、.env、node_modules 都不要打进发布包。

  1. probe:请求资源。未付款时应返回 HTTP 402,响应头里有 Payment-Needed。脚本把该头的原文字节写入 mode 600 的文件,不解码、不改写。状态不是 402,或没有这个头,就停止,不要进入 pay。
node scripts/excel-chart-report-paid.mjs probe --note '表格用途或想看什么' --state-dir '.state/SESSION_KEY'
  1. pay:把账单和原始资源请求交给官方 CLI,展示支付入口,然后停下来等用户付完。教程写出的参数只有这些。POST 正文不另造参数名;正文就是 probe 那一份 JSON,写进 --intent-summary,并保存在订单状态里。
node scripts/excel-chart-report-paid.mjs pay --state-dir '.state/SESSION_KEY' --session-id 'SESSION_KEY'

对应命令:

alipay-bot 402-buyer-pay --session-id 'SESSION_KEY' --file '.state/SESSION_KEY/payment-needed.txt' --resource-url 'https://49.232.229.62/v1/chart' --method POST --intent-summary '原始请求:生成Excel图表报告。POST 正文是同一份 JSON:{"note":"表格用途或想看什么"}'
  1. complete:用户付完后,用同一笔 out-shake-no 查询原订单。官方 CLI 会带 Payment-Proof 重试同一资源 URL、同一 POST。没有 out-shake-no 就拒绝运行。成功路径不要再发一条独立回执。若 CLI 明确说回执失败,原样告诉用户,并用同一单再跑 complete。
node scripts/excel-chart-report-paid.mjs complete --state-dir '.state/SESSION_KEY' --out-shake-no 'OUT_SHAKE_NO'

对应命令:

alipay-bot 402-query-payment-status --out-shake-no 'OUT_SHAKE_NO' --resource-url 'https://49.232.229.62/v1/chart' --method POST

查询通过后,接口只确认这笔已经付款。图表、分析和工作簿由本技能按下面的规则,在本机从用户的表生成。接口不代算数据,也不接收表格。

支付规则

  • 未付款:服务端返回 HTTP 402 和 Payment-Needed。这时不要开始做图表和分析。
  • 付款后:用 Payment-Proof 重试同一次请求。URL、方法、{"note":...} 都保持不变。
  • 服务端验证凭证和订单。凭证无效或过期时不交付,脚本不得把失败响应当成图表和分析。
  • 资源返回后,商家履约确认由服务端完成。买家 CLI 在成功路径里处理回执,脚本不再额外发送回执。回执失败就用同一 out-shake-no 重试 complete。
  • 订单写在状态文件里,可以恢复。同一 out-shake-no 可以重复查询。已经有订单号时,probe 和 pay 都会拒绝再开一单。不要让用户为同一笔再付一次。

读表

用本机的 Python(pandas、openpyxl、matplotlib)读表和出图。缺库时先告诉用户要装哪几个,用户同意再装。旧版 xls 还需要 xlrd,装不了就请用户在 Excel 里另存为 xlsx。

  • 找到真正的表头行(跳过标题行和空行),合并单元格按首格的值展开。
  • xlsx 用缓存值读公式(data_only=True)。公式格没有缓存值(文件没在 Excel 里保存过)时,告诉用户先在 Excel 里打开保存一次,不要自己重算后冒充原值。
  • 识别三类列:日期列、数值列、类别列。带千分位、货币符号、百分号的文本转成数值;转不了的格子记为「非数值」,不填 0,不删整行。
  • 合计行、小计行不参与做图,免得重复计数。
  • 文件超过 50MB 或 100 万行,先问用户要不要筛一段时间或几个类别,不要偷偷抽样。

选图

最多 6 张,每张回答一个问题,不为凑数做图:

  • 趋势:有日期列时,按日、周或月汇总后画折线。不到 3 个时间点就不画趋势。
  • 占比:类别不超过 6 个、数值都不为负、加起来就是整体时,画环形图;否则画横向条形图并标百分比。
  • 排行:类别多时画前 10 横向条形图,其余合并成「其他」并注明。
  • 对比:两个以上数值列、量纲相同时画分组柱状图;量纲不同就分开画,不用双轴硬凑。

每张图都要有中文标题、坐标轴名和单位(单位只用表头里有的)。中文显示成方框时,换系统里有的中文字体(如 Noto Sans CJK、思源黑体、微软雅黑、苹方)。PNG 按 01_趋势_销售额.png 这样编号命名,200 dpi。

分析怎么写

三到六条,按「趋势、占比、异常」的顺序,每条一两句,必须带数字,例如「9 月销售额 12.4 万,比 8 月多 18%」。

  • 数字只来自你算出的汇总表,百分比保留一位小数,金额沿用表里的单位。
  • 异常用写明的规则判断:数值在四分位距 1.5 倍以外,或环比变化超过 ±50%。规则写进说明,不凭感觉点名。
  • 只说表里看得出的事;原因不知道就写「表里看不出原因」,不编市场解释。
  • 不做预测。用户明确要时,只给简单线性外推,并标明「仅按历史趋势外推,不是预测」。
  • 数据有缺口(空月份、非数值格、被排除的合计行),在最后一条说明有多少、影响哪张图。

工作簿

新建 <源文件名>_图表报告.xlsx,不改原文件,四个工作表:

  1. 数据:本次用到的清洗后数据。
  2. 汇总:每张图用到的汇总数,一张图一块区域,标好图名。
  3. 图表:用 openpyxl 建 Excel 原生图表,引用「汇总」里的单元格,和 PNG 一一对应。
  4. 说明:分析原文、异常规则、数据缺口、源文件名和读取的工作表。

回复用户

用中文短回复:先贴三到六条分析,再给输出文件夹绝对路径,以及 PNG 和 xlsx 的文件名。点出数据缺口。CLI 的支付输出按原样给用户。

边界

  • 不造数、不补空格、不平滑数据;图上每个点都能在「汇总」里找到。
  • 不做财务审计、统计显著性检验或因果结论。
  • 图片识别出来的表格、截图里的数字,先请用户核对后再做图。
  • 不读取私钥,不把密钥、.env 或服务端源码放进技能包。