back
loading skill details...
筛选测试用例Excel文件,提取P0/P1优先级用例,删除项目/产品列,重新编号并保持原格式
---
name: testcase-filter
description: 筛选测试用例Excel文件,提取P0/P1优先级用例,删除项目/产品列,重新编号并保持原格式
version: "1.1"
author: custom
license: MIT
category: testing
tags:
- excel
- testcases
- filter
- automation
models:
recommended:
- claude-sonnet-4
- claude-opus-4
compatible:
- claude-3-5-sonnet
- gpt-4
- gpt-4o
capabilities:
- data_processing
- file_manipulation
- testing
languages:
- en
- zh
---
# 测试用例筛选Skill
## 功能概述
本skill专门用于处理测试用例Excel文件,实现以下功能:
1. **删除项目/产品列**:自动识别并删除"项目/产品"、"产品/项目"、"产品"、"项目"等列
2. **筛选P0/P1用例**:提取每个sheet中"优先级"为"P0"或"P1"的测试用例行
3. **跳过空优先级sheet**:如果某个sheet中的"优先级"列数据均为空,则跳过此sheet
4. **拆分合并单元格**:将所有合并单元格拆分,并将内容自动填充到拆分的单元格中
5. **重新编号**:将筛选后的用例"编号"列重新从"TC001"开始编号
6. **保持格式**:输出文件完全保留原文件的格式、布局、样式和列宽
## 使用方法
### 基本用法
用户只需描述需求,例如:
- "帮我筛选这个测试用例文件,只保留P0和P1的用例"
- "处理PC功能点用例.xlsx,提取高优先级用例并重新编号"
- "筛选测试用例,优先级为P0或P1,编号从TC001开始"
### 技术实现
本skill使用Python + openpyxl实现,无需安装Excel,支持批量处理。
#### 核心功能模块
```python
# 1. 查找优先级列
def find_priority_column(sheet):
"""自动识别优先级列(支持中文"优先级"或英文"Priority")"""
# 2. 查找编号列
def find_number_column(sheet):
"""自动识别编号列(支持"编号"、"ID"、"No"、"序号")"""
# 3. 拆分合并单元格
def unmerge_and_fill_cells(sheet):
"""拆分合并单元格并填充内容到所有拆分后的单元格"""
# 4. 复制样式
def copy_cell_style(source_cell, target_cell):
"""完整复制单元格样式(字体、边框、填充、对齐等)"""
# 5. 处理Excel
def process_excel(input_file, output_file):
"""主处理函数:筛选、重新编号、保持格式"""
```
## 处理流程
```
输入文件
↓
分析文件结构
├─ 识别所有sheet
├─ 查找优先级列
└─ 统计P0/P1用例数量
↓
逐个sheet处理
├─ 拆分合并单元格
├─ 筛选P0/P1用例
├─ 复制表头和样式
├─ 重新编号(TC001-TCxxx)
└─ 保持格式和布局
↓
保存输出文件
↓
生成处理报告
```
## 处理示例
### 输入
- 文件名:PC功能点用例.xlsx
- Sheet数量:69个
- 总用例数:约10,000条
### 输出
- 文件名:PC功能点用例_筛选后.xlsx
- Sheet数量:51个(含P0/P1用例)
- 跳过:18个(无P0/P1用例)
- 编号:每个sheet从TC001开始连续编号
- 格式:完全保留原文件格式
### 处理统计
| 指标 | 数值 |
|------|------|
| 处理的sheet数 | 51 |
| 跳过的sheet数 | 18 |
| 合并单元格拆分 | 2000+ |
| 用例重新编号 | 2000+ |
## 支持的文件格式
### 优先级列识别
自动识别以下列名:
- 优先级
- Priority
- 优先级等级
### 编号列识别
自动识别以下列名:
- 编号
- ID
- No
- 序号
- 用例编号
### Sheet处理规则
- ✅ 有优先级列且有P0/P1用例:处理并保留
- ⏭️ 有优先级列但无P0/P1用例:跳过
- ⏭️ 无优先级列:跳过
## 技术细节
### 单元格样式复制
完整复制以下样式属性:
- 字体(字体、大小、颜色、粗体、斜体)
- 边框(样式、颜色)
- 填充(背景色、图案)
- 对齐方式(水平、垂直)
- 数字格式
- 保护
### 合并单元格处理
```python
# 拆分前:
# | 合并单元格内容 |
# | |
# | |
# 拆分后:
# | 合并单元格内容 |
# | 合并单元格内容 |
# | 合并单元格内容 |
```
### 重新编号格式
- 格式:`TC{number:03d}`
- 示例:TC001, TC002, TC003, ..., TC999
- 每个sheet独立编号
## 使用场景
### 1. 版本发布前测试用例筛选
```
场景:需要执行高优先级用例
输入:完整测试用例集
输出:P0/P1用例集
```
### 2. 回归测试用例准备
```
场景:准备回归测试用例集
输入:所有测试用例
输出:核心功能用例(P0/P1)
```
### 3. 测试用例质量分析
```
场景:分析测试用例优先级分布
输入:原始用例文件
输出:
- 按优先级筛选的用例集
- 处理统计报告
```
## 注意事项
1. **文件格式**:仅支持.xlsx格式(Excel 2007+)
2. **文件大小**:支持大文件处理(测试过10MB+文件)
3. **编码格式**:支持中文、英文、特殊字符
4. **性能优化**:大文件处理时建议关闭屏幕更新
5. **备份建议**:处理前建议备份原文件
## 安装依赖
```bash
pip install openpyxl
```
## 示例代码调用
```python
# 直接调用处理函数
from testcase_filter import process_excel
input_file = "测试用例.xlsx"
output_file = "测试用例_筛选后.xlsx"
process_excel(input_file, output_file)
```
## 常见问题
### Q1: 为什么某些sheet被跳过了?
A: 可能原因:
- 该sheet没有"优先级"列
- 该sheet的优先级列全为空
- 该sheet没有P0或P1用例
### Q2: 编号会重复吗?
A: 不会。每个sheet独立编号,从TC001开始。
### Q3: 合并单元格会影响数据吗?
A: 不会。合并单元格拆分后,内容会填充到所有拆分的单元格中,确保数据完整性。
### Q4: 输出文件格式会改变吗?
A: 不会。脚本完整复制所有样式、格式、列宽、行高,保持原文件外观一致。
## 更新日志
### v1.0 (2026-04-15)
- ✅ 初始版本发布
- ✅ 支持P0/P1用例筛选
- ✅ 支持合并单元格拆分
- ✅ 支持自动重新编号
- ✅ 支持格式完全保留
## 反馈与支持
如有问题或建议,请通过以下方式联系:
- 提交Issue
- 发送邮件至支持团队
---
**Powered by Claude Code & Python**don't have the plugin yet? install it then click "run inline in claude" again.