python⽐对两个excel表数据_如何使⽤python⽐对两个excel表
中的不同?
解决⽅法如下:
让我们⽤Python 写⼀个⼩脚本:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#导⼊模块 openpyxl
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color
#读取excel⽂件
#括号中的字符串为你要⽐较的两个excel的路径,注意⽤“/”
wb_a = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test.xlsx')
wb_b = openpyxl.load_workbook('d:/BAKFILE/d046532/Desktop/check excel/test2.xlsx')
#定义⼀个⽅法来获取表格中某⼀列的内容,返回⼀个列表
#在这⾥,我的表格中:IP是具有唯⼀性的,所以我⽤它来区分数据的差异,⽽IP这⼀列在我的表格中是第“G”列
def getIP(wb):
sheet = wb.get_active_sheet()
ip = []
for cellobj in sheet['G']:
ip.append(cellobj.value)
return ip
#获得ip列表
ip_a = getIP(wb_a)
ip_b = getIP(wb_b)
#将两个列表转换成集合
aa = set(ip_a)
bb = set(ip_b)
#出两个列表的不同⾏,并转换成列表
difference = list(aa ^ bb)
#打印出列表中的元素
#到这⼀步,两个表格中不同的数据已经被出来了
for i in difference:
print (i)
#将不同⾏⾼亮显⽰
print ("开始第⼀张表" + "----" *10)
a = _active_sheet()['G']
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")
print ("开始第⼆张表" + "----" *10)
b = _active_sheet()['G']
for cellobj in b:
if cellobj.value in difference:
print (cellobj.value)
cellobj.font = Font(color=colors.BLACK, italic=True ,bold = True) cellobj.fill = PatternFill("solid", fgColor="DDDDDD")
wb_a.save('d:/BAKFILE/d046532/Desktop/a.xlsx')
wb_b.save('d:/BAKFILE/d046532/Desktop/b.xlsx')
这样,就会保存两个excel的副本,python怎么读入excel
并在这个副本中⽤单元格填充⾊和字体颜⾊标注出两个表格中不同的数据差异。
希望对你有帮助哦 ~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。