[特殊字符] Python 自动查找替换 Excel 单元格内容 —— 高效批量处理

本文演示如何利用 Python 和 openpyxl 通过另一个 Excel 表(查找替换表)批量更新待处理文件中的指定内容,是处理编码、ID 或标签一对一替换的高效方案。


🎯 核心思路

  1. 读取查找-替换表,创建映射字典 data={查找:替换}

  2. 读取目标 Excel 数据列(如 D 列),并提取“关键码”;

  3. 对每个值进行对照替换,并写回 Excel;

  4. 保存生成新文件。


📥 Step 1:构建查找替换映射字典

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 并提取关键内容

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:对“:”之后的代码进行提取

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:按字典替换内容并写回单元格

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 的行号

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


如你想换用不同的案例,释放你的脚本或需求,我可以继续帮你输出对应文章内容😊

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happydog007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值