传盛空运价表提取
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_17da570a/extra-alllink-fcirate。
技能介绍
空运报价表常以航司分页、多目的地混排、生效日期分散在表头的方式出现,人工整理成 24 列标准表时很容易漏掉某个重量段,或把历史报价当成新数据复用。这个技能针对 ALL-Link 报价文件,把解析、清洗、去历史数据和上传 WPS 串成一条可重复的流水线。
它解决什么问题
- 报价文件包含
12个 Sheet,分标准页、MU 日本线、QT 块、UC 块四类结构,列名可能是+45K、+100K、+1000K,也可能在 MU 页缺少+300K。 - 同一目的港可能写成
/、空格或连续三字码如DXBDWC,需要拆成多个目的地。 - 生效日期可能写在当前航司行,也可能只在后面某行出现,靠肉眼判断容易把过期价格混入当前批次。
- 历史脚本里常残留旧的
price/data数组或*_output.xlsx,直接读取会让“新文件”变成假更新。
技能如何工作
技能先固定一组不变参数:起始港固定为 PVG,价格编号为 alllink_alllink_001,来源为 ALLLINK,货型统一 1:1,散托类型统一“散货/托盘”,重量区间为 0 到 9999。
运行时按 main() 固定顺序调用四类提取函数:标准 Sheet、MU 日本线、QT 块、UC 块。标准页通过 parse_header 把 DEST、+45K、+100K、+300K、+500K、+1000K、航班、备注 映射到标准字段;MU 日本线检测到没有 +300K 时,把 +500K 的值映射到 300KG,把 +1000K 的值映射到 500KG。
数据解析上,价格使用 parse_price:TACT、Nil、NIL、-、空白都解析为 None,其他值保留 float,不允许使用 int() 截断小数。频次使用 parse_frequency:1.3.4.6 转为 D1346,daily 转为 Daily,空频次统一补 Daily。extract_multi_dest 处理三种分隔写法,无分隔的连续三字码用正则 [A-Z]{3} 拆出。
生效日期按优先级查找:先在当前航司行找 Effective Date,再向后扫描 8 行,最后使用 config default_date 兜底。build_row() 中统一过滤早于 cutoff_date 的行;航司行、纯标题行、目的港为空或为 #、ZONE 的行,以及五个重量段价格全空的行都会跳过。
使用边界
- 只处理用户当前提交的文件。禁止查看、引用或复制历史脚本中的
price/data数组,禁止读取历史*_output.xlsx作为源数据,禁止硬编码历史图片或 Excel 路径。 - 历史数据只能作为解析规则参考,不能填补缺失价格。有就是有,没有就是没有。
- 每批次都要对照源文件更新 Sheet 配置:确认航司列表按源文件实际出现顺序排列,缺失航司移除,新增航司加入
CARRIERS集合,否则is_carrier_row()会漏识别。 - Sheet 7 QT 的
3个数据块行列范围是硬编码,每批次需对照源文件修正,并检查日期和散托类型判断逻辑。 - 输出前仍需逐字段验证;脚本模板中的路径和
cutoff_date也必须更新为当前批次。
使用场景
- 收到代理发来的新版ALL-Link报价Excel,需将PVG始发、多目的港的12个Sheet解析为24列标准表并上传WPS,供销售报价。
- 收到MU日本线报价表,其表头缺+300K列,需按规则映射重量段并保留float小数价格,生成24列标准表上传WPS。
- 每月初需处理含多个QT和UC数据块的ALL-Link新文件,核对航司列表与生效日期,剔除历史数据后输出最新可用运价。
- 面对混合了中转点运费等无效行及连续三字码目的地的复杂报价表,需精准拆分多目的港并过滤无效数据行。
适合人员
- 国际空运销售:每周需从ALL-Link最新报价文件中提取多目的港运价,生成标准报价单跟进客户,最怕用到过期价格。
- 物流数据分析师:负责定期清洗航司报价Excel,需要将不同Sheet结构的运费统一为标准字段,并剔除中转等无效行。
- 供应链运营专员:每月需汇总PVG始发的多家航司空运价格并上传WPS共享,希望自动化处理复杂的多目的地拆分和生效日期过滤。
- 跨境电商物流主管:关注日本等特定航线的运费波动,需要准确获取MU日本线等特殊表头结构的最新价格,避免人工转录出错。