本文演示如何利用 Python 和
openpyxl
通过另一个 Excel 表(查找替换表)批量更新待处理文件中的指定内容,是处理编码、ID 或标签一对一替换的高效方案。
🎯 核心思路
-
读取查找-替换表 ,创建映射字典
data={查找:替换}
; -
读取目标 Excel 数据列(如 D 列),并提取"关键码";
-
对每个值进行对照替换,并写回 Excel;
-
保存生成新文件。
📥 Step 1:构建查找替换映射字典
python
from openpyxl import load_workbook
wb = load_workbook('查找替换.xlsx')
ws = wb.active
data = {}
for row in range(2, ws.max_row + 1):
chazhao = str(ws[f'A{row}'].value)
tihuan = str(ws[f'B{row}'].value)
data[chazhao] = tihuan
-
利用源文件 A、B 列构建查找---替换对;
-
将所有值转为字符串,以避免数据类型冲突;
📌 Step 2:读取目标 Excel 并提取关键内容
python
wb = load_workbook('原表.xlsx')
ws = wb.active
ID_list = [ws[f'D{r}'].value for r in range(2, ws.max_row + 1)]
# 展示前十条数据
ID_list[:10]
ID_list
存储所有原始 D 列值,保留顺序便于替换对应。
✂️ Step 3:对":"之后的代码进行提取
python
code = []
for v in ID_list:
if v is None:
code.append(None)
else:
code.append(v.split(":")[-1])
# 前十条结果:
# code[:10]
-
使用
split(":")
截取最后部分作为关键码; -
None 值保持同步,确保索引一致。
🔄 Step 4:按字典替换内容并写回单元格
python
for idx, c in enumerate(code):
if c in data:
original = ID_list[idx].split(":")[0]
ws.cell(row=idx+2, column=4).value = f"{original}:{data[c]}"
-
对存在于
data
的关键码进行替换; -
替换方式为替换":"后面的部分,保留前缀描述;
💾 Step 5:保存新文件并定位 None 的行号
python
wb.save('原表-替换.xlsx')
ID_list_idx = list(enumerate(ID_list))
for idx, val in ID_list_idx:
if val is None:
print(idx) # 打印第几条记录原值为空,方便后续补充
🖼️ 结果展示区

✅ 小结
-
使用查找表批量替换 Excel 文件中指定列内容;
-
拆分字符串方便保留描述部分;
-
可扩展至多列替换、自定义分隔符、多条件匹配等;
-
若想增加日志、GUI 交互、批处理多个文件等功能,也可以继续扩展。
更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2
如你想换用不同的案例,释放你的脚本或需求,我可以继续帮你输出对应文章内容😊