Install
openclaw skills install @qingchazhushui/merge-inventoryopenclaw skills install @qingchazhushui/merge-inventory用户上传入库单 Excel 文件,要求将表1(入库单据格式)转换为标准汇总表(表2格式)。
表1 特征: 多行杂乱布局,含表头公司名(成都金山化学试剂有限公司)、仓库、单据编号、审核人等信息。
识别方法: 扫描所有行,找 col[1] == '序号' 的行作为数据块起点。
| 表头字段 | col 索引 | 表2列名 |
|---|---|---|
| 序号 | 1 | 序号 |
| 存货编码 | 5 | 存货编码 |
| 存货名称 | 12 | 存货名称 |
| 规格 | 16 | 规格 |
| 单位 | 19 | 单位 |
| 数量 | 20 | 数量 |
| 单价 | 25 | 单价 |
| 含税金额 | 29 | 含税金额 |
| 批次号 | 33 | 批次号 |
| 客户送货日期 | 36 | 客户送货日期 |
| 客户送货单号 | 39 | 客户送货单号 |
| 供应商送货日期 | 43 | 供应商送货日期 |
| 供应商送货单号 | 45 | 供应商送货单号 |
col[1] == '序号',记录为数据块起始'合计',此行 col[16]='大写',col[29]=含税金额合计数sheet='sheet名' 参数指定只处理某个 sheet存货编码 == '71000064' 且 含税金额 == 0 的行(食堂采购专用占位行)| 字段 | 要求 |
|---|---|
| 字体 | Arial |
| 表头 | 粗体,浅蓝背景(#D9E1F2),水平垂直居中 |
| 合计行 | 粗体,浅黄背景(#FFF2CC) |
| 普通数据行 | 白色背景 |
| 边框 | 所有单元格细边框 |
| 列宽 | 自动(内容自适应,max=30) |
| 冻结 | 首行冻结(freeze_panes='A2') |
| 行号 | 从1开始,连续编号 |
| 空值 | 显示为空字符串,不显示NaN |
pd.read_excel(input_file, header=None) 逐行扫描pd.concat(blocks, ignore_index=False) + 空行插入openpyxl.Workbook() 创建标准化Excel,应用样式merged_output.xlsxmerged_output.xlsx(可指定)None,Excel中显示为空,不显示NaN