python脚本(⽐较两个Excel表格的不同并标记)
python脚本(⽐较两个Excel表格的不同并标记)
由于最近有⽤到⽐较两个Excel数据的不同,数据量较⼤,就在⽹上搜索了⼀下python脚本,发现⼀个⽐较好⽤的,但只能⽐较单列的不同,且有些函数为旧版函数⽬前已⽆法使⽤,因此重新对该脚本进⾏了修改,使其可以⽐较excel表中所有列数的不同内容并标记,记录如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#导⼊模块 openpyxl
import openp卤面的做法
yxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color
import copy
#读取excel⽂件
#括号描写老师的作文
中的字符串为你要⽐较的两个excel的路径,注意⽤“/”
wb_a 面部浮肿一般是什么原因导致的
= openpyxl.load_workbook('G:/Desktop/test.xlsx')
wb_b = openpyxl.load_workbook('G:/Desktop/test1.xlsx')
#定义⼀个⽅法来获取表格中某⼀列的内容,返回⼀个列表
#将每⼀列输出为⼀个列表(temp表⽰列的名字)
def getIP(wb,temp):
sheet = wb.active
ip =[]不按规定安装号牌
for cellobj in sheet[temp]:
ip.append(cellobj.value)
return ip
#想⽐较哪⼏列就输⼊那⼏列的名称
list1 =['A','B','C','D','E','F','G','黑色卫衣搭配
H','I']
list2 =[]#⽤于存每列不同的值
differ1 ={}#第⼀个⽂件中每列不同的列表组成字典
differ2 ={}#第⼆个⽂件中每列不同的列表组成字典
for temp1 in list1:
#获得ip列表
ip_a = getIP(wb_a,temp1)
ip_b = getIP(wb_b,temp1)
#将两个列表转换成集合
aa =t(ip_a)
bb =t(ip_b)
#找出两个列表的不同⾏,并转换成列表
difference =list(aa ^ bb)
#打印出列表中的元素
#到这⼀步,两个表格中不同的数据已经被找出来了
# for i in difference:
# print (i)
#将不同⾏⾼亮显⽰
#print ("开始第⼀张表" + "----" *10)
del list2[0:]
a = wb_a.active[temp1]
for cellobj in a:
if cellobj.value in difference:
#print (cellobj.value)
cellobj.font = Font(color=colors.BLACK, italic=True,bold =True)
cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
list2.append(cellobj.value)
if list2!=[]:
differ1[temp1]=copy.deepcopy(list2)
#print ("开始第⼆张表" + "----" *10)
del list2[0:]
del list2[0十万为什么
:]
b = wb_b.active[temp1]
for cellobj in b:
if cellobj.value in difference:
#print (cellobj.value)
cellobj.font = Font(color=colors.BLACK, italic=True,bold =True) &现代古诗
nbsp; cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
list2.append(cellobj.value)
if list2!=[]:
differ2[temp1]=copy.deepcopy(lis摩托过山车
t2)
print(differ1.items())
print(differ2.items())
wb_a.save('G:/Desktop/a.xlsx')
wb_b.save('G:/Desktop/b.xlsx')
运⾏后结果如下:
dict_items([('D',['撒']),('E',[2])])
dict_items([('D',['热情改变']),('E',[20])])
两个⽂件内容如下图所⽰: