从项目费用 Excel 文件自动生成按客户分类的成本分析报告。
当用户:
EVP 项目费用.xlsx 的文件并要求生成成本分析报告python3 ~/.openclaw/workspace/skills/cost-report-generator/scripts/generate_cost_report.py <源文件路径> [输出目录]
示例:
python3 ~/.openclaw/workspace/skills/cost-report-generator/scripts/generate_cost_report.py ~/Desktop/EVP_项目费用.xlsx
from scripts.generate_cost_report import generate_cost_report
output_file = generate_cost_report(
source_file="/path/to/EVP_项目费用.xlsx",
output_dir="/path/to/output" # 可选,默认为源文件所在目录
)
支持的费用类型:
列名格式:{年份} 年{月份} 月{费用类型},如:
25 年 1 月人工费用25 年打样费用(年度汇总)26 年 1-2 月人工费用脚本默认使用第 4 行(索引 3)作为表头。如果源文件格式不同,需要调整 header 参数。
| 列范围 | 内容 |
|---|---|
| -------- | ------ |
| A-C | 基本信息(客户大类、项目大类、内部订单号) |
| D-E | HR 费用(汇总、月均) |
| F-R | HR 费用月度明细(1-12 月) |
| S-T | 试产/打样费用(汇总、月均) |
| U-AG | 试产/打样费用月度明细 |
| ... | 其他费用类别同理 |
| 最后两列 | 总计(汇总、月度合计) |
#,##0.00(千分符 + 两位小数),所有数值统一脚本会自动统计实际有数据的月份数,并按以下规则计算:
max_months = 2 if year == 2026 else 12
divisor = min(actual_months_count, max_months)
monthly_avg = monthly_sum / divisor
header 参数output_dir 参数指定原因:表头位置不正确
解决:检查源文件的表头位置,修改脚本中的 header 参数:
df = pd.read_excel(source_file, sheet_name='Sheet1', header=3) # 调整为正确的行号
原因:列名格式不匹配
解决:检查源文件的列名格式,确保包含"年"、"月"等关键字,如25 年 1 月人工费用
原因:客户大类列的值与预期不符
解决:检查"客户大类"列的实际值,必要时在脚本的 valid_customers 列表中添加新的客户类型
scripts/generate_cost_report.py - 核心生成脚本技能已安装在 ~/.openclaw/workspace/skills/cost-report-generator/,当前 OpenClaw 会话可直接使用。
方式 1:通过 ClawHub 发布(推荐)
# 1. 登录 ClawHub
clawhub login
# 2. 发布技能
clawhub publish ~/.openclaw/workspace/skills/cost-report-generator \
--slug cost-report-generator \
--name "成本分析报告生成器" \
--version 1.0.0 \
--changelog "初始版本:支持 EVP 项目费用文件自动生成成本分析报告"
其他用户安装:
clawhub install cost-report-generator
方式 2:直接共享技能文件夹
将 ~/.openclaw/workspace/skills/cost-report-generator/ 打包发送给其他用户,让他们放到自己的 ~/.openclaw/workspace/skills/ 目录下。
方式 3:通过 OpenClaw 团队空间
如果多个用户共享同一个 OpenClaw workspace,技能会自动对所有用户可见。
name: cost-report-generator
version: 1.0.0
description: 从项目费用 Excel 自动生成按客户分类的成本分析报告
author: Richard 张
tags: [成本分析,财务报告,Excel, 飞书]
共 1 个版本