阀门清单分类统计
针对工程类阀门清单 Excel(.xlsx / .xls),自动完成表格识别 → 参数匹配分组 → 同类型数量统计 → 位号批量汇总,输出标准化《阀门分类统计表》。
何时使用
- 用户上传阀门清单 / 阀门材料表 / 设备清单 Excel,要求「统计每种阀门数量」「按类型汇总位号」
- 用户有工程阀门 BOM 需要规范化整理、去重计数
- 关键词:阀门、阀、位号、DN、蝶阀、球阀、止回阀、CLASS、法兰
输入要求
- 载体:
.xlsx/.xls - 必备 9 个核心字段(列名支持模糊匹配 / 含换行 / 合并表头 / 空行备注行自动跳过):
1. 位号
2. 规格(DN250、DN15…)
3. 阀门类型(蝶阀、球阀、止回阀…)
4. 阀门连接形式(对夹、法兰式、三通式 FNPT、两片式内丝…)
5. 驱动方式(手动、气动…)
6. 设计压力(CLASS150、150PSI…)
7. 阀体材质(球墨铸铁、SS304…)
8. 阀座材质(EPDM,允许为空)
9. 阀板材质(SS304,允许为空) - 其余列(序号、图纸编号、设备/材料名称等)自动忽略
核心逻辑
- 解析与清洗:读取首个有效工作表(无数据则自动遍历后续表);建立列名→9 字段映射;去除空格/换行/制表符;材质与压力等级统一大写(
ss304→SS304)。 - 缺失校验:任意核心字段缺失 → 提示缺失字段名称并终止(合并“阀形式”列视为同时提供 阀门类型 + 阀门连接形式)。
- 分组:以「规格、阀门类型、阀门连接形式、驱动方式、设计压力、阀体材质、阀座材质、阀板材质」8 字段完全相同为同一阀门类型。
- 统计:每组数量 = 源文件「数量(QTY)」列求和(缺该列时退回行数计数);同组「位号」按原顺序用
、拼接。 - 排序:默认按阀门类型升序(中文按拼音)、同类型下按规格 DN 数值降序。
已兼容的真实表头变体
- 合并列:「阀形式」(如
对夹蝶阀/FNPT 三通球阀/两片式FNPT双头内丝球阀)自动拆分为「阀门类型 + 阀门连接形式」 - 「开关方式」 自动识别为「驱动方式」
- 「技术规格」 自动识别为「规格」
- 自动跳过 标题行 / 分区行 / 合计行(如位号=
合计、无可识别阀门类型或 DN 规格的行) - 材质/压力等级大小写归一(
ss304→SS304、150psi→150PSI)
输出
标准化表格(同时写入 Excel 与终端 Markdown),列顺序固定:
序号 | 规格 | 阀门类型 | 阀门连接形式 | 驱动方式 | 设计压力 | 阀体材质 | 阀座材质 | 阀板材质 | 数量 | 位号汇总
- 序号从 1 连续编号
- 无位号的数据计入数量、位号汇总跳过,并在末尾备注「存在无位号阀门数据」
- 特殊格式内容保留原始值参与分组,不做主观修正
使用方式
依赖 openpyxl(读 .xlsx)、xlrd(读 .xls)、pypinyin(中文排序)。首次运行脚本会自动安装缺失依赖,无需手动处理。
python valve_stat.py --input <清单.xlsx> [--output <结果.xlsx>] [--separator 、] [--sheet 0]
参数:
- --input / -i:输入 Excel 路径(必填)
- --output / -o:输出路径(默认在输入同目录加 _统计表.xlsx)
- --separator:位号分隔符,默认中文顿号 、
- --sheet:指定工作表索引(0 起),默认自动选首个有效表
边界处理
- 多工作表:默认读第一个;首表无有效数据自动遍历后续表
- 合并表头 / 含换行表头 / 空行 / 备注行:自动定位有效表头与数据行,跳过无效内容
- 格式特殊无法标准化的字段:保留原始内容分组
- 扩展点:用户可自定义分组维度、排序规则、位号分隔符(通过参数 / 脚本顶部常量调整)
内置清单模板(一键发送)
为避免因遗忘字段格式导致清单对不上,技能内置一份可复用的空白 / 示例清单模板。当用户索要模板时,直接把这份模板交还,无需现场拼表头。
模板文件位置
与本 SKILL.md 同级的 Assets 目录:
valve-list-stats/
└── assets/
└── 阀门清单模板.xlsx
该模板已包含技能解析所需的全部 9 个核心字段表头(位号、规格、阀门类型、阀门连接形式、驱动方式、设计压力、阀体材质、阀座材质、阀板材质),并附带若干示意数据行,使用者照着填即可。
触发条件
用户出现以下任一意图时,执行发送流程:
- 明确索要模板:「给我一个模板」「发我模板」「阀门清单模板」「空白清单」
- 表达遗忘 / 不确定格式:「忘记清单格式了」「阀门清单怎么填」「表头是什么样的」
发送流程
- 定位源文件:读取本技能目录下的
assets/阀门清单模板.xlsx(即SKILL.md同级assets/子目录中的同名文件)。 - 决定落盘位置:
- 用户指定了保存路径 → 复制到该路径;
- 用户未指定 → 复制到当前工作区目录,命名为阀门清单_模板.xlsx。 - 复制文件:使用文件复制命令将模板原样拷贝到目标路径(保持
.xlsx格式与内容不变,不要改写、不要重排)。 - 交付:调用
present_files工具,传入复制后的本地文件路径,让用户直接打开 / 下载该模板。 - 提示:在回复中简要说明模板内含的字段含义(可引用上方 9 个核心字段),并提醒「照此表头填写即可被本技能正确统计」。
> 注意:交付时只复制并发送模板,不对其内容做任何改动;若用户后续要求统计,再按上文「核心逻辑」处理该清单。