Excel 映射替换
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_8f803df1/excel-mapping-replace。
技能介绍
解决什么问题
把 Excel 某一列(比如"公开国别")里的文本批量替换成标准代码("中国"→CN),是数据清洗里的常见需求。手工做查找替换,最怕两件事:改错列、或把"中国北京"也一起替换掉;写脚本直接改 sharedStrings.xml,又怕全局替换误伤其他列。这个技能把整条流程固定成可复用的四步法,保证只动目标列、只改映射表中存在的值。
核心能力与工作方式
技能遵循 excel-safe-workflow 四步法:需求解析 → 勘察 → 规划 → 执行 → 验证。
- 映射匹配用
pandas,从映射表或粘贴文本中建立值映射 - 值替换按文件大小分流:小文件走
openpyxl,大文件走 XML 方案 - 映射表中不存在的值保留原样,不丢数据
关键步骤
- 需求解析:明确目标列(如"公开国别")、映射关系("中国→CN,日本→JP")、映射来源(对话口述 / 粘贴文本 / xlsx 文件)
- 勘察:读取目标文件结构,确认列位置
- 规划:统计受影响行数(映射表 ∩ 列中值),列出不会被改动的值,确认无误后执行
- 执行:走 sheet 层 + 列号限定,只改目标列的 cell;替换后的值写成 inline string,不产生新的 sharedString 引用
- 验证:校验替换结果是否符合预期
适用边界与注意点
- 精确匹配:
中国只匹配中国,不会匹配中国北京 - 大小写敏感:
China≠china,需要不敏感匹配要先预处理 - 禁止 sharedStrings 层全局替换:XML 方案通过列号限定(
cell.get('r').startswith(col_letter)),不误伤其他列 - 操作前自动备份:时间戳命名,保留最新 3 份,失败后可从备份恢复
- 文件被占用时保存会失败:需要关闭 Excel 后重试
使用场景
- 把表格中的中文国名批量替换成CN、JP等标准代码,且不误伤“中国北京”这类包含关系文本
- 对几万行大文件的状态列做替换(如“通过”改为“PASS”),担心全局替换误伤其他列
- 映射关系只存在于粘贴文本中,需要快速应用到目标列,而不是手工逐条查找替换
- 把混合状态列中映射表内的值统一成规范写法,映射表中不存在的值保持原样
适合人员
- 数据分析师:每周清洗导出报表中的国别、状态等文本列,需要比手工查找替换更可靠的脚本化方案
- 后端工程师:为 Excel 导入功能补一段可靠的列级文本映射逻辑,参考四步法与 XML 列级改写实现
- 运营人员:把几十份渠道表格中的“已关闭”等状态统一改成规范标记,映射表中没有的值必须保留
- 财务助理:月结前将各子公司费用明细中的科目简称批量替换为集团标准科目,且不能改动未列出的科目