python 如何快速找出两个电子表中数据的差异
Python  /  管理员 发布于 7年前   142
最近刚接触python,找点小任务来练练手,希望自己在实践中不断的锻炼自己解决问题的能力。
公司里会有这样的场景:有一张电子表格的内容由两三个部门或者更多的部门用到,这些员工会在维护这些表格中不定期的跟新一些自己部门的数据,时间久了,大家的数据就开始打架了,非常不利于管理。怎样快速找到两个或者多个电子表格中数据的差异呢?
解决办法:
1. Excel自带的方法(有兴趣的自行百度)
2. python 写一个小脚本
#!/usr/bin/env python# -*- coding: utf-8 -*-#导入模块 openpyxl import openpyxlfrom openpyxl.styles import PatternFillfrom openpyxl.styles import colorsfrom 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 如何快速找出两个电子表中数据的差异就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号
