用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')