victory的博客

长安一片月,万户捣衣声

0%

openpyxl | 用Python在Excel中查找并替换数据

用Python在Excel中查找并替换数据

实现代码:

from openpyxl import load_workbook  # 用于读取Excel中的信息

# 获取Excel表格中的数据
wb = load_workbook('查找替换.xlsx')  # 读取工作簿
ws = wb.active  # 读取活动工作表
data = {}  # 新建字典,用于储存数据

for row in range(2, ws.max_row + 1):
    chazhao = str(ws['A' + str(row)].value)  # 转换成字符串,以免后续比对时出现数据类型冲突
    tihuan = str(ws['B' + str(row)].value)  # 转换成字符串,以免后续比对时出现数据类型冲突
    data[chazhao] = tihuan  # 键值对应存入字典

wb = load_workbook('原表.xlsx')  # 读取目标工作簿
ws = wb.active
ID_list = []  # 新建一个列表,用于储存原表D列的信息
for row in range(2, ws.max_row + 1):
    ID = ws['D' + str(row)].value  # 遍历整个工作表,将D列的数据逐个存入ID变量
    ID_list.append(ID)  # 将读取到的结果存入列表

code = []
for i in ID_list:
    if i is None:  # 如果是None,则放入None占位,以保持列表的值的顺序与原表一致
        code.append(None)
    else:
        code.append(i.split(":")[-1])  # 不是None,则按":"符号分割,并放分割后的最后一个值进入新列表code

for i in range(len(code)):
    if code[i] in data:
        ws.cell(row=i + 2, column=4).value = ID_list[i].split(":")[0] + ":" + data[code[i]]
wb.save('原表-替换.xlsx')

查找替换.xlsx
原表.xlsx