python如何快速的查找出两个电子表中数据的差异的方法介绍

python如何快速的查找出两个电子表中数据的差异的方法介绍

下面小编就为大家带来一篇python 如何快速找出两个电子表中数据的差异。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力。

公司里会有这样的场景:有一张电子表格的内容由两三个部门或者更多的部门用到,这些员工会在维护这些表格中不定期的跟新一些自己部门的数据,时间久了,大家的数据就开始打架了,非常不利于管理。怎样快速找到两个或者多个电子表格中数据的差异呢?

解决办法:

1. Excel自带的方法(有兴趣的自行百度)

2. 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 = wb_a.get_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 = wb_b.get_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的副本,并在这个副本中用单元格填充色和字体颜色标注出两个表格中不同的数据差异

未解决:

1. 怎样将这些有差异的数据补充到一张表里,形成一个全集表

2. 怎么优化精简代码

以上就是python如何快速的查找出两个电子表中数据的差异的方法介绍的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

《天天拼词王》第211关人间清醒找出32个常用字通关攻略

《天天拼词王》第211关需要在人间清醒找出32个常用字,通关核心是仔细辨认部件,依次描黑不同部分并逐字提交。经实测,完整答案列表为:一、二、三、亖、人、囗、日、门、问、间、青、月、清、土、汢、西、酉、兀、生、星、醒、旦、吐、旧、洒、酒、汁、等。逐一描黑提交,就能顺利过关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第211关人间清醒找出32个常用字通关攻略 第211关:人...

《天天拼词王》第206关氪找出15个常用字通关攻略

《天天拼词王》第206关【氪】找出15个常用字答案是:一、二、三、亖、气、十、古、儿、兄、口、克、兀、氪、卂、元  。描黑不同部件,逐字提交,细心观察就能轻松通关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第206关氪找出15个常用字通关攻略 第206关氪找出15个常用字 1、这一关需要描黑不同部件,逐字提交 2、先提取横笔画得“一、二、三、亖”;最后一个字是【元】如下...

《天天拼词王》第209关额找出11个常用字通关攻略

《天天拼词王》第209关需从“额”字中拆分出11个常用字,通关核心是仔细辨认部件,依次描黑不同部分并逐字提交。经实测,完整答案列表为:一、囗、又、各、客、㝊、人、贝、页、呗、额。逐一描黑提交这11个字,就能顺利过关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第209关额找出11个常用字通关攻略 第209关额找出11个常用字 1、这一关正确答案如下图:一、囗、又、各、客、...

《天天拼词王》第207关翼找出25个常用字通关攻略

《天天拼词王》第207关翼找出25个常用字答案是:一、二、三、亖、十、土、囗、田、日、习、羽、刁、共、八、丑、早、呈、只、旦、異、王、干、翼、工、上。描黑不同部件,逐字提交,细心观察就能轻松通关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第207关翼找出25个常用字通关攻略 第207关翼找出25个常用字 1、这一关需要描黑不同部件,逐字提交 2、先提取横笔画得“一、二、...

《天天拼词王》第210关幢找出23个常用字通关攻略

《天天拼词王》第210关需从“幢”字中拆分出23个常用字,通关核心是仔细辨认部件,依次描黑不同部分并逐字提交。经实测,完整答案列表为:幢、巾、立、一、二、三、亖、土、丰、干、工、囗、日、旦、亘、里、音、童、甲、旧、十、辛、王。逐一描黑提交,就能顺利过关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第210关幢找出23个常用字通关攻略 第210关幢找出23个常用字 1、这一...

《天天拼词王》第212关屋找出14个常用字通关攻略

《天天拼词王》第212关屋找出14个常用字,通关核心是仔细辨认部件,依次描黑不同部分并逐字提交。经实测,完整答案列表为:一、二、三、亖、尸、至、土、干、王、云、十、屋、工、玍。逐一描黑提交,就能顺利过关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第212关屋找出14个常用字通关攻略 第212关屋找出14个常用字 1、这一关正确答案如下图:一、二、三、亖、尸、至、土、干、...

《天天拼词王》第208关泰酷辣找出32个常用字通关攻略

《天天拼词王》第208关泰酷辣找出32个常用字答案是:一、二、三、亖、小、八、水、人、尒、大、夫、夵、泰、兀、囗、日、西、酉、土、古、吉、告、酷、十、木、巾、辣、中等。描黑不同部件,逐字提交,细心观察就能轻松通关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第208关泰酷辣找出32个常用字通关攻略 第208关:泰酷辣找出32个常用字 1、这一关需要描黑不同部件,逐字提交 ...

《天天拼词王》第213关嘲找出23个常用字通关攻略

《天天拼词王》第213关需要在嘲找出23个常用字,通关核心是仔细辨认部件,依次描黑不同部分并逐字提交。经实测,完整答案列表为:一、二、三、亖、囗、叶、吐、早、上、十、干、古、咕、吅、旦、日、月、明、嘲、胡、士、朝、呾。逐一描黑提交,就能顺利过关。 >>>《天天拼词王》全关卡通关攻略 《天天拼词王》第213关嘲找出23个常用字通关攻略 第213关:嘲找出23个常用字 1、这一关正确...