# Byted Sol Excel Bill Discount

> 账单Excel折扣处理工具，自动生成标准合规的账单折扣总览透视表，包含日期格式化、聚合计算、格式设置、总额验证，生成的XLSX文件无Excel修复提示。

- Skill: `bytedance/byted-sol-excel-bill-discount` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add bytedance/byted-sol-excel-bill-discount`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bytedance/byted-sol-excel-bill-discount/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: bytedance (https://skillmd.com/u/bytedance)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/bytedance/byted-sol-excel-bill-discount

---


# Excel账单处理工具

## 功能说明
自动处理上传的账单Excel明细表，生成符合格式要求的"账单折扣总览"透视表，严格遵循指定的格式、数据保留、验证规则，生成的文件无Excel修复弹窗，兼容Excel 2016+。

## 使用方法
当用户上传账单Excel文件并要求处理时，直接调用本技能的处理脚本，传入输入文件路径即可：
```bash
python ~/.openclaw/skills/byted-sol-excel-bill-discount/process_bill.py <输入文件路径>
```

## 处理规则（严格遵循）
### 1. 工作表要求
- 新建"账单折扣总览"透视表，放在最左侧位置
- 完全保留原工作表所有内容和格式
- 原工作表日期字段格式化：
 - 账务账期、业务账期 → YYYY-MM格式
 - 账务日期 → YYYY/MM/DD格式
 - 消费开始时间(UTC+8)、消费结束时间(UTC+8)、交易时间(UTC+8) → YYYY/MM/DD hh:mm:ss格式
- 原工作表字体：等线11号，缩放90%

### 2. 透视表字段要求
从以下字段列表中筛选原表实际存在的字段，按原顺序排列，原表中缺失的字段无需在透视表中展示：
`账务账期、Payer账号ID、Payer ID、Owner账号ID、账号 ID、产品、商品、计费模式、账单类型、配置名称、计费单元、单价、单价单位、优惠类型、优惠内容、用量、原价、折后价、代金券抵扣、应付金额`
- 对**用量、原价、折后价、代金券抵扣、应付金额**中在原表存在的字段进行聚合求和
- 所有配置名称、计费单元数据必须完整保留，不得缺失

### 3. 格式要求
- 全部单元格：微软雅黑10号字体，缩放90%，所有单元格加边框
- 首行（表头）：填充#BDD7EE，加粗居中
- 尾行（合计行）：填充#D9D9D9，加粗居中
- 金额字段（原价、折后价、代金券抵扣、应付金额）：2位小数，千位分隔符，居右对齐
- 用量字段：无千位分隔符，保留数值自然长度，无固定小数位数
- 居中列：账务账期、计费模式、账单类型、单价、单价单位、优惠类型、优惠内容
- 列宽自动适配：每列宽度 = (最长单元格字符宽度，中文计2单位/英文数字计1单位) × 1.1
- 账务账期格式：YYYY-MM

### 4. 输出文件名规则
从"账务账期"字段解析生成：`A年B月产品折扣账单.xlsx`
- 例：Feb-26 → A=26，B=2
- 例：2026-02-01 → A=26，B=2

### 5. 文件规范要求
必须使用xlsxwriter生成文件，确保：
- 打开无任何修复提示弹窗
- 符合Office Open XML规范，无XML结构错误
- 兼容Microsoft Excel 2016+

### 6. 数据处理原则
- 保留所有原始数据，不删除任何行、不过滤任何内容
- 禁止自动清洗数据，禁止判定脏数据，禁止删除特殊格式名称
- 分组聚合时强制使用`dropna=False`，不忽略任何数据

### 7. 验证规则
生成前必须验证：
- 透视表原价总额 = 原表原价总额
- 透视表折后价总额 = 原表折后价总额
- 透视表应付金额总额 = 原表应付金额总额
- 验证不通过则提示"总额不一致，无法生成"
